Javascript日期时间问题

时间:2013-12-02 07:30:06

标签: javascript datetime utc

我有一个代码,用于在表格中存储开始日期toUTCString和结束日期toUTCString。 当我在控制台调试代码时,javascript显示出一些奇怪的行为。

控制台中的输出

 var startdate = new Date($("#smdatestart").val()).toUTCString();
 var enddate = new Date($("#smdateend").val()).toUTCString();
 var now = new Date();
 var currUTCDate = now.toUTCString();//current datetime
startdate //starting date
"Mon, 02 Dec 2013 07:30:00 GMT" //in UTC
currUTCDate // current date
"Mon, 02 Dec 2013 07:15:16 GMT"  //in UTC
enddate // ending date
"Sun, 01 Dec 2013 18:30:00 GMT" //in UTC


currUTCDate > enddate //should be true but showing false
false
startdate > enddate //should be true but showing false
false
startdate > currUTCDate // this output is correct
true

3 个答案:

答案 0 :(得分:1)

var startdate = new Date('Mon, 02 Dec 2013 07:30:00 GMT');
var enddate = new Date('Sun, 01 Dec 2013 18:30:00 GMT');
var currUTCDate = new Date('Mon, 02 Dec 2013 07:15:16 GMT');

startdate > enddate // true

currUTCDate > enddate // true

涉及'='的任何内容都应使用'+'前缀。然后它会比较dates millisecond值。

+startdate  <= +currUTCDate ;  => true
+startdate >= +currUTCDate ;  => true
+startdate === +currUTCDate ; => true

答案 1 :(得分:0)

我建议您首先比较日期格式的日期。如果条件满足,请将数据转换为utcstring并根据需要存储它们。

答案 2 :(得分:0)

使用==或!=或&gt;时或者&lt;如果两个表达式的类型不同,它将尝试将它们转换为字符串,数字或布尔等 使用下面的代码进行比较

if ( Date.parse ( currentdate) > Date.parse ( enddate) ) {
    // your code
}