2013-06-01 98 views
2
var dt1=new Date("2013/05/25"); //yyyy/MM/dd 
var dt2=new Date("2013/05/24"); 

if(dt1>dt2) 
{ 
    alert("invalid Date!"); 
} 

此代碼工作在所有瀏覽器..的Javascript日期變量

但是,如果我們選擇:

var dt1=new Date("25/05/2013"); //dd/MM/yyyy 
var dt2=new Date("24/05/2013"); 

if(dt1>dt2) 
{ 
    alert("invalid Date!"); 
} 

此代碼是不是在所有的瀏覽器工作?爲什麼? 是否有任何應該被所有瀏覽器接受的特定日期格式? DateTime也有任何標準嗎?謝謝........

+0

在上下文中,「工作」和「不工作」是什麼意思? –

+0

請參閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse – Niko

+0

這是因爲javascript日期僅支持有效的ISO兼容日期格式輸入,即yyyy/mm/DD。 –

回答

0

是的dd/MM/yyyy格式將不支持所有的瀏覽器,我們繼續改變這種類型的日期格式爲字符串,即使在PHP也我們繼續使用這個甲酸通過strtotime()函數

+3

你爲什麼要批准[這個建議編輯](http://stackoverflow.com/review/suggested-edits/2232828)?用另外4個空格縮進代碼有什麼好處? – Matt

3

是的有一個標準Javascript Date Object

其中contructors的是new Date(dateString);和dateString有一個解釋:表示日期

字符串值。該字符串應採用解析方法(符合IETF的RFC 2822時間戳)識別的格式。

而在IE就是做你想做的一點點不同IE WAY

所以最安全的方法是要麼使用最後一個構造函數:

new Date(year, month, day [, hour, minute, second, millisecond]);

或您的dateString必須yyyy/mm/dd

+0

不錯的信息...... – Dylan

+1

這意味着如果你需要接受用戶輸入的日期,你需要根據你想要指定的任何規則解析他們輸入的字符串,然後使用'new Date(year,month ,天)'構造函數。 – nnnnnn

+0

你絕對正確,先生! – thinklinux