【发布时间】:2014-03-20 20:20:39
【问题描述】:
我有 startdate 和 enddate 字符串,我将字符串转换为日期对象
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);
startdate 和 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');
}
但是即使 startdatetime 大于 enddatetime,如果条件没有执行。
如何解决这个问题有什么建议吗?
已解决
如果开始日期大于结束日期,我正在使用的程序会在运行时自动更改结束日期。但是前端没有更新,即 datetimepicker 文本框,所以前端 enddate 仍然小于 startdate,但在后台代码中修改了 enddate 变量和我用来比较日期的那个变量....抱歉给你们带来了麻烦....谢谢帮助我。
【问题讨论】:
-
如果未显示警报,则表示
s_date不大于e_date。确保正确创建日期对象。 -
在问题中我说“但是即使 startdatetime 大于 enddatetime,如果条件没有执行”
-
是的,但是
>是一个如此简单的操作,条件为假的唯一原因是日期对象不是您想要的对象有,而s_date实际上不大于e_date。你怎么知道s_date真的更大?你做了console.log(s_date.toString(), e_date.toString())吗?除非您提供一个 running 示例,其中s_date晚于e_date并且s_date > e_date是false,否则我会坚持我的意见。 -
我已经使用警报来检查开始日期和结束日期。因为两个日期相同,bt 时间变化仍然没有弹出窗口。开始日期:2014-02-20 00:30:00 结束日期:2014-02-20 00:00:00
-
所以你通知了
startdate,但没有通知s_date。alert(new Date(startdate))向您展示了什么?
标签: javascript date