Javascript日期时间问题

Javascript日期时间问题,javascript,datetime,utc,Javascript,Datetime,Utc,我有一个将startdatetoutString和endDatetoutString存储在表中的代码。 当我调试控制台中的代码时,javascript显示出一些奇怪的行为 控制台中的输出 var startdate = new Date($("#smdatestart").val()).toUTCString(); var enddate = new Date($("#smdateend").val()).toUTCString(); var now = new Date(); var

我有一个将startdate
toutString
和endDate
toutString
存储在表中的代码。 当我调试控制台中的代码时,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

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

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

if ( Date.parse ( currentdate) > Date.parse ( enddate) ) {
    // your code
}
任何涉及
'='
的内容都应使用
'+'
前缀。然后将比较
日期毫秒值

+startdate  <= +currUTCDate ;  => true
+startdate >= +currUTCDate ;  => true
+startdate === +currUTCDate ; => true
+起始日期为真
+起始日期>=+当前日期;=>真的
+起始日期===+当前日期;=>真的

值是实际的
Date
对象还是字符串?我编辑了我的问题。($(“#smdateend”).val()中的值是多少实际上,这些字符串的格式不具有可比性。它们从工作日开始,即字符串的顺序由工作日的顺序决定。可比格式根本不包含工作日,而希望类似于
YYYY-MM-DD HH:MM:SS
,而不是字符串。
startdate中的值de>、
enddate
currUTCDate
是字符串,而不是日期对象。您实际上是按字母顺序比较日期的字符串表示形式,而不是比较实际日期。
+startdate  <= +currUTCDate ;  => true
+startdate >= +currUTCDate ;  => true
+startdate === +currUTCDate ; => true