我有两个日期为From和To,字符串格式为1/11/2015
和15/11/2015
。有哪些方法可以找出两个日期之间的天数差异。请记住,日期是字符串格式,而不是JavaScript日期格式。
答案 0 :(得分:4)
您可以使用
将它们转换为日期function convertToDate(str)
{
var dateArr = str.split("/");
return new Date(dateArr[2], dateArr[1], dateArr[0])
}
var date1 = convertToDate("1/11/2015");
var date2 = convertToDate("15/11/2015");
var diffInDays = (date1.getTime() - date2.getTime())/ (1000*60*60*24);
alert( Math.ceil( Math.abs( diffInDays ) ) );
getTime
返回自1970年以来的毫秒数,因此您需要将它们除以24 * 60 *60 * 1000
()
答案 1 :(得分:0)
在JS中实际上非常简单。
即。在JS
//Since your dates are in DD/MM/YY we have to modify it a bit
var d1 = '1/11/2015'.split('/')
var d2 = '15/11/2015'.split('/')
//This is our converted format that is MM/DD/YY
var normd1 = [d1[1],d1[0],d1[2]].join('/')
var normd2 = [d2[1],d2[0],d2[2]].join('/')
//Get the difference in ms and use the absolute value incase you switched the days
var diff = Math.abs(Date.parse(norm1) - Date.parse(normd2))
//convert the difference to days
var days = diff/(1000*60*60*24 )
Date.parse
将日期字符串转换为毫秒UNIX时间戳,即自1970年1月1日以来的毫秒数。
答案 2 :(得分:0)
您可以使用moment js来获得所需的结果。
var fromDt = new Date("11/1/2015"), toDt = new Date("11/15/2015");
var moment = require('moment');
转换为毫秒。
var fromDate = moment(fromDt).format('X') * 60000;
var toDate = moment(toDt).format('X') * 60000;
找到差异。
var diffMs = toDate - fromDate;
现在您可以使用所需的格式。
注意: - diffMs会给你不同的毫秒数。您可以转换它以了解其中的差异。
希望这会有所帮助。
答案 3 :(得分:0)
以下是mmddyy日期格式的功能
function dateDiff(d1,d2){
var date1 = new Date(d1)
var date2 = new Date(d2);
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
return(diffDays);
}
Date函数能够处理字符串。该字符串应采用Date.parse()方法识别的格式(符合IETF的RFC 2822时间戳以及ISO8601的版本)。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date