我在初始化JavaScript日期對象時面臨一個奇怪的問題,無論我初始化爲什麼顯示日期爲1 Jan 1970 05:30;使用javascript日期對象問題
這是我嘗試初始化
var d=new date(27-02-1989);
警報「d」表示1970年1月1日.....,也有時需要從數據庫中但在格式毫米/過去的日期的方式dd/yyyy不是我想要的格式即dd/mm/yyyy
這個問題突然出現了,因爲前幾天一切都很順利,但是今天打開項目後(今天兩天後)這個問題讓我很不舒服
我在初始化JavaScript日期對象時面臨一個奇怪的問題,無論我初始化爲什麼顯示日期爲1 Jan 1970 05:30;使用javascript日期對象問題
這是我嘗試初始化
var d=new date(27-02-1989);
警報「d」表示1970年1月1日.....,也有時需要從數據庫中但在格式毫米/過去的日期的方式dd/yyyy不是我想要的格式即dd/mm/yyyy
這個問題突然出現了,因爲前幾天一切都很順利,但是今天打開項目後(今天兩天後)這個問題讓我很不舒服
// Transform your european date in RFC compliant date (american)
var date = '27-02-1989'.split('-').reverse().join('-');
// And this works
var d = new Date(date);
證明:
的所有
var d=new date(27-02-1989);
一是完全以在JavaScript錯誤的表達,而且即使我們更正確地重寫它:
var d=new Date('27-02-1989');
沒有辦法在js中原生解析這個日期字符串。
這裏解決方案,您可以嘗試:
new Date(year, month-1, day)
分割字符串,並使用setDate, setMonth, setYear
方法上new Date()
對象
注意,在最後兩個你需要方法從本月中扣除1,因爲月是從零開始(0代表1月11日,十二月)
我看你已經接受一個答案,但它是不是最好的你可以做。沒有一種格式可以被所有常用瀏覽器正確解析,至少在IE 8中接受的答案會失敗。
將字符串轉換爲日期的唯一安全方法是解析它,例如,
var s = '27-02-1989';
var bits = s.split('-');
var date = new Date(bits[2], --bits[1], bits[0]);
+ 1 for'--bits [1]',好的把戲! –
1970年1月1日是unixtime的起點 - 通常是一個跡象表明,事情正在評估爲零或假 - 在控制檯中嘗試新的日期(假) – Ken
你試過日期(「27-02-1989」 ); ? – Gustav
是的報價工作,但它仍然需要的格式爲mm/dd/yyyy我該如何改變這種情況? – Snedden27