【发布时间】:2013-12-02 07:30:06
【问题描述】:
我有一个代码,它将开始日期 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
【问题讨论】:
-
这些值是实际的
Date对象还是字符串? -
我编辑了我的问题。
-
实际上 ($("#smdateend").val() 中的值是什么
-
嗯,这些字符串的格式不可以使它们具有可比性。它们从工作日开始,即字符串的顺序由工作日的顺序决定。可比较的格式根本不包含工作日,并且需要像
YYYY-MM-DD HH:MM:SS这样的格式。 Compare the time value of the date objects,不是字符串。 -
startdate、enddate、currUTCDate中的值是字符串,而不是日期对象。您实际上是按字母顺序比较日期的字符串表示形式,而不是比较实际的日期。
标签: javascript datetime utc