我有一个场景,我必须解析两个日期,例如开始日期和结束日期。
var startdate = '30-04-2014 05:30:00 PM';
var enddate = '02-05-2014 05:52:36 PM';
但是如果我们提醒开始日期
alert(Date.Parse(startdate));
我会得到1465041600000
但如果我提醒enddate
alert(Date.Parse(enddate));
我会得到1391602956000
但这不能正常工作,因为enddate
大于startdate
,但解析后我们会得到更大的开始日期值。我希望在这两天之间找到差异。
任何人都可以知道解决方法吗?
答案 0 :(得分:1)
Date.parse('30-04-2014 05:30:00 PM') // returns NAN!
我假设您的意思是2014年4月30日和2014年5月2日,在这种情况下它应该是(mm-dd-yyyy)
Date.parse('04-30-2014 05:30:00 PM') // returns 1398844800000
和
Date.parse('05-02-2014 05:30:00 PM') // returns 1399018956000
答案 1 :(得分:0)
您的日期格式错误。根据{{3}}:
或者,日期/时间字符串可以是ISO 8601格式。例如,可以传递和解析“2011-10-10”(仅限日期)或“2011-10-10T14:48:00”(日期和时间)。
所以:
ISO 8601格式: yyyy-mm-dd
您的格式: dd-mm-yyyy
答案 2 :(得分:0)
var date = new Date();从当前时间开始的日期
date.setDate(arrival.getDate()+晚);将日期中的日期设置为抵达当月的日期并添加+晚。
如果今天是5月,日期是5月,如果到达是6月,则第2行不会将日期设置为6月。
试试这个:
var arrival = parseDate($('#arrivaldate').val());
var depart = new Date(arrival);
var nights = parseInt($('#nights').val());
depart.setDate(arrival.getDate()+nights);
console.log(depart);
答案 3 :(得分:0)
这可以在java脚本中完成,请尝试以下代码
var x = new Date('your start goes here');
var y = new Date('your end date goes here');
var timeDiff = Math.abs(y.getTime() - x.getTime());
var days = Math.ceil(timeDiff / (1000 * 3600 * 24));
变量天数为两天差异
答案 4 :(得分:0)
我认为你的字符串错了。 02-05-2014是2月5日,2014年4月30日不存在。
但是日期是“04-30-2014”,即4月30日。
我认为这是你的问题。