JavaScript验证3个日期之间的日期

时间:2015-10-21 10:37:24

标签: javascript datetime

var current_date = '2015-10-21 16:08:30';
var event_start_date = '2015-10-27 09:30:00';
var event_end_date =  '2015-10-28 18:30:00';

if(new Date(current_date) > new Date(event_end_date)){
    //Event has been ended
} else if((new Date(current_date) > new Date(event_start_date)) && (new Date(current_date) < new Date(event_end_date))){
   //Event is running. Event will close event_end_date
} else {
   //Event not started yet. Event will start event_start_date
}

以上JavaScript条件不起作用。

我有什么问题?

注意: - Mozilla firefox上面的代码无效。请检查JSFiDDLE

2 个答案:

答案 0 :(得分:0)

首先转换为javascript日期格式。例如。

var current_date = new Date('2015-10-21 16:08:30'); //works in chrome but not in firefox

然后你的条件会奏效。

请遵循:new Date() is working in Chrome but not Firefox

显然Mozilla不是很灵活。查看文档:{​​{3}}

答案 1 :(得分:0)

将字符串解析为Date对象的浏览器支持不一致。没有关于格式的规范,因此这就是它适用于Chrome而不适用于Firefox的原因。

See this link获取每个浏览器支持的格式表

我个人使用moment.js框架来操纵JavaScript上的日期,它易于使用,并且具有适用于大多数浏览器的一致API。

var current_date = '2015-10-21 16:08:30';

var momentDate = moment('2015-10-21 16:08:30', 'YYYY-MM-DD HH:mm:ss');