我有一个代码,用于在表格中存储开始日期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
答案 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
}