[英]converting a date string to ISO 8601 format string and eventually a date object
我將使其變得簡單...從帖子中獲取日期字符串為:
var str = "25/01/2014";
但是,當使用Date.parse()這樣的函數時:
var date = Date.parse (str);
我在嘗試打印時會得到NaN。
建議將這種字符串格式化為iso-8601格式的建議方法是什么,或者可以將這種字符串轉換為日期格式的任何其他方法?
有關日期字符串格式轉換的一般建議,請參見js中的將字符串轉換為日期 。
適用於您的特定情況:
// Convert DD/MM/YYYY to ISO format YYYY-MM-DD: let string = "01/02/2016"; let re = /(\\d+)\\/(\\d+)\\/(\\d+)/; let date = new Date(string.replace(re, "$3-$2-$1")); console.log(date);
說實話,您的代碼在我的系統中有效。 但是,如果您想安全起見,請分割字符串並從中創建日期對象。
var a = '25/01/2014';
var b = a.split('/');
var d = new Date(b[2],b[1],b[0]);
如果您知道提供的字符串str
為dd/mm/yyyy
格式,則可以使用
var date= new Date( str.split( "/" ).reverse() );
保證Date.parse
解析簡化的ISO-8601格式。 是否將識別其他格式取決於實現方式。 但是請注意,上面的代碼將年,月和日作為數字傳遞給構造函數,因此無需再次對其進行解析。
我上面的代碼是錯誤的 。 它對我有用,因為反向數組將轉換為字符串“ 2014,01,25”,Mozilla的Date.parse
恰好接受該字符串。 您需要按照@Alex Kudryashev和@le_m的建議分別傳遞參數。 甚至
Date.prototype.constructor.apply( null, array )
無法正常工作,因為Date構造函數作為函數調用時的行為有所不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.