我有开始日期和结束日期字符串,我正在将字符串转换为日期对象
var startdate = start_date[3]+'-'+month_value_start+'-'+start_date[2]+' '+start_time[0]+':'+start_time[1]+':00';
var enddate = end_date[3]+'-'+month_value_end+'-'+end_date[2]+' '+end_time[0]+':'+end_time[1]+':00';
var s_date = new Date(startdate);
var e_date = new Date(enddate);
开始日期和结束日期格式类似于 2014-02-20 00:00:00
我想比较此日期对象,如果 s_date 大于 e_date,将向用户显示弹出窗口
if(s_date > e_date)
{
alert('Start Date Cannot Be Greater Than End Date');
}
但是即使开始日期时间大于结束日期时间,条件也不会执行,有些情况如何。
如何解决这个问题有什么建议吗?
已解决
如果开始日期大于结束日期,我正在使用的程序会在运行时自动更改结束日期。但前端没有更新,即 datetimepicker 文本框,因此前端 enddate 仍然小于 startdate,但在后台代码中修改了 enddate 变量以及我用来比较日期的变量....抱歉打扰你们了...并且感谢帮助我。
最佳答案
在确定差异时,所有答案都是正确的。
但是您面临的问题是调用方式不正确
new Date(dateString);
从此处复制答案 Difference between Date(dateString) and new Date(dateString)
Date()
With this you call a function called Date(). It accepts date in format "yyyy-mm-dd hh:mm:ss"
new Date()
With this you're creating a new instance of Date.
You can use only the following constructors:
new Date() // current date and time new Date(milliseconds) //milliseconds since 1970/01/01 new Date(dateString) new Date(year, month, day, hours, minutes, seconds, milliseconds)
因此,不允许使用 2010-08-17 12:09:36 作为构造函数的参数。
编辑:new Date(dateString) 使用以下格式之一:
"October 13, 1975 11:13:00"
"October 13, 1975 11:13"
"October 13, 1975"
关于javascript 如何比较日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898516/