的想法
我需要你的帮助。
如何使用dd/mm/yyyy
的日期格式比较两个日期并找出日期差异?(英国日期标准)
Ie.1
var date1 = "26/11/2013"
var date2 = "29/11/2013"
if (date1 < date2) { difference is -3 }
Ie.2
var date1 = "26/11/2013"
var date2 = "22/11/2013"
if (date1 > date2) { difference is +4 }
Ie3
var date1 = "26/11/2013"
var date2 = "26/11/2013"
if (date1 > date2) { difference is 0 }
使用日期对象:
var date1 = '26/11/2013'.split('/');
var date2 = '29/11/2013'.split('/');
var start = new Date(date1[2], +date1[1]-1, date1[0]);
var end = new Date(date2[2], +date2[1]-1, date2[0]);
alert((start.getTime() - end.getTime()) / (1000*60*60*24));
你可能想添加一些错误检查,但你得到了
- 将日期拆分为年月日
- 创建新日期
然后使用这样的代码。(Java)
public String get_duration_from_date(Date date1, Date date2) {
TimeUnit timeUnit = TimeUnit.SECONDS;
long diffInMillies = date2.getTime() - date1.getTime();
long s = timeUnit.convert(diffInMillies,TimeUnit.MILLISECONDS);
long days = s / (24*60*60);
long rest = s - (days*24*60*60);
long std = rest / (60*60);
long rest1 = rest - (std*60*60);
long min = rest1 / 60;
long sec = s % 60;
String dates ="";
if (days > 0)
dates += int_to_str((int)days) + " " + grs(R.string.days) + " ";
dates += fill2((int)std) + "h ";
dates += fill2((int)min) + "m ";
dates += fill2((int)sec) + "s ";
return dates;
}
如果你真的想坚持这种格式,你可以设置一个新的日期,比如这个
var date1 = "21/11/2013"
, date1Obj = new Date(date1.split('/').reverse());
然后,像Andreas提到的那样使用moment.js,或者自己比较的日期
var date1 = "21/11/2013"
, date2 = "29/11/2013"
, d1 = new Date(date1.split('/').reverse())
, d2 = new Date(date2.split('/').reverse());
if (d1 < d2){ console.log((d1.getTime()-d2.getTime())/86400000 + ' days') }