首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中以字符串格式查找与日期的日期差异

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

Stack Overflow用户
提问于 2016-05-26 07:08:58
回答 4查看 829关注 0票数 1

我有两个日期,分别是从和以字符串格式表示的1/11/2015和15/11/2015。有什么方法可以在两个日期之间找出不同的日子。记住,日期是字符串格式,而不是JavaScript日期格式。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-26 07:20:19

您可以将它们转换为日期。

代码语言: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 ()来转换为天数。

票数 4
EN

Stack Overflow用户

发布于 2016-05-26 07:25:09

实际上在JS中很简单。

  1. 将字符串转换为Unix时间戳
  2. 得到差额
  3. 将差额转换为天数

即JS

代码语言:javascript
复制
//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日以来的毫秒数。

票数 0
EN

Stack Overflow用户

发布于 2016-05-26 07:26:49

您可以使用矩js来实现您想要的结果。

代码语言:javascript
复制
var fromDt = new Date("11/1/2015"), toDt = new Date("11/15/2015");
var moment = require('moment');

转换成毫秒。

代码语言:javascript
复制
var fromDate = moment(fromDt).format('X') * 60000;
var toDate = moment(toDt).format('X') * 60000;

找出区别。

代码语言:javascript
复制
var diffMs = toDate - fromDate;

现在,您可以使用所需的格式。

注意:-衍射器会给出毫秒的差。你可以把它转换成知道区别。

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37453869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档