繁体   English   中英

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

[英]How to find date difference from Date in string format in javascript

我有两个日期,分别为From和To,字符串格式分别为1/11/201515/11/2015 找到两个日期之间的天差的方法是什么。 请记住,日期为字符串格式,而不是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 ()将其转换为天数

实际上在JS中非常简单。

  1. 将字符串转换为Unix时间戳
  2. 有所作为
  3. 将差额转换为天数

即在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日以来的毫秒数。

您可以使用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会以毫秒为单位给您带来差异。 您可以将其转换以了解不同之处。

希望这会有所帮助。

以下是日期的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/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM