如何在javascript中以字符串格式查找日期与日期的差异

如何在javascript中以字符串格式查找日期与日期的差异,javascript,Javascript,我有两个日期,分别为从和到,字符串格式为2015年11月1日和2015年11月15日。找出两个日期之间天数差异的方法有哪些。记住日期是字符串格式而不是JavaScript日期格式。您可以使用 function convertToDate(str) { var dateArr = str.split("/"); return new Date(dateArr[2], dateArr[1], dateArr[0]) } var date1 = convertToDate("1/11/20

我有两个日期,分别为从和到,字符串格式为2015年11月1日和2015年11月15日。找出两个日期之间天数差异的方法有哪些。记住日期是字符串格式而不是JavaScript日期格式。

您可以使用

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将其转换为天

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,将其转换为天,这在JS中实际上非常简单

将字符串转换为Unix时间戳 明白了吗 把差额换算成天 i、 e.在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 )

parse将日期字符串转换为毫秒级UNIX时间戳,即自1970年1月1日以来的毫秒数。

在JS中它实际上非常简单

将字符串转换为Unix时间戳 明白了吗 把差额换算成天 i、 e.在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日起的毫秒数。

您可以使用它来获得所需的结果

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将以毫秒为单位显示差异。您可以将其转换为了解差异

var diffMs = toDate - fromDate;
希望这会有所帮助。

您可以使用它来实现您想要的结果

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将以毫秒为单位显示差异。您可以将其转换为了解差异

var diffMs = toDate - fromDate;

希望这会有所帮助。

下面是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.parse方法IETF兼容的RFC 2822时间戳和ISO8601版本所识别的格式


以下是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.parse方法IETF兼容的RFC 2822时间戳和ISO8601版本所识别的格式


您可以将它们转换为Date对象,然后计算差异看看:构造函数可以将字符串作为参数,并将其转换为日期。新日期“2015年11月15日”将给出无效日期。您必须使用新日期“11/15/2015”。您可以将它们转换为日期对象,然后计算差异。请看:构造函数可以将字符串作为参数,并将其转换为日期。新日期“15/11/2015”将为您提供无效日期。你必须使用新的日期“2015年11月15日”。既然本地JavaScript已经支持并且更简单,为什么还要使用库呢?如果你经常使用日期计算,那么通过momente.js更容易实现。我用它来做这种计算。为什么要在原生JavaScript已经支持并且更简单的情况下使用库呢?如果你经常使用日期计算,那么通过moment.js来做就更容易了。我用它来做这种计算。