如何在javascript中获取几天前的日期[重复]
Posted
技术标签:
【中文标题】如何在javascript中获取几天前的日期[重复]【英文标题】:How to get the date in days ago in javascript [duplicate] 【发布时间】:2020-04-12 17:28:27 【问题描述】:所以,
我有这个
10 Dec, 2019T14:07:21
来自后端的日期格式,我需要的是找到多少天前。
比如今天是 20 ,所以今天的日期是 0 天前。
【问题讨论】:
看看这个 - geeksforgeeks.org/… 【参考方案1】:你可以试试这个代码。
var date1 = new Date("12/13/2010");
var date2 = new Date("12/20/2010");
var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24), 10);
console.log(diffDays )
【讨论】:
【参考方案2】:您可以比较两个日期。减去它们会给你毫秒的差异。那些毫秒可以转换成天。
const now = new Date();
// Mimick a backend date
const daysAgo = new Date();
daysAgo.setDate(daysAgo.getDate() - 10);
// Compare both, outputs in miliseconds
const diffMs = now - daysAgo;
// Get the number of days by dividing by the miliseconds in a single day
const daysDiff = Math.round(diffMs/(1000*60*60*24));
console.log(daysDiff)
【讨论】:
【参考方案3】:(new Date()-new Date("10 Dec, 2019T14:07:21".replace("T"," ")))/1000/60/60/24
【讨论】:
【参考方案4】:您尝试执行的操作称为“日期差异”,这意味着您想要找到两个日期之间的天数差异。首先,您需要从所需的字符串创建一个新的 Date 对象。您可以使用 Moment.js 库来执行此操作,该库将解析您的日期字符串并返回一个 Date 对象。
var date1 = moment("10 Dec, 2019T14:07:21", "DD MMM, YYYY");
var date2 = new Date() //today date
一个简单的js函数完成,如下所示
function dateDiff(date1, date2)
var datediff = date1.getTime() - date2.getTime();
return (datediff / (24*60*60*1000));
dateDiff 函数将返回日期之间的差异,因此如果 date1 是前一天,它将返回负天数。为了将其转换为您需要的“x 天前”格式,您只需将结果乘以 -1。
【讨论】:
new Date("10 Dec, 2019T14:07:21") 返回“无效日期” 道歉。 Date() 构造函数除外 ans ISO Date 格式的字符串。因此您必须使用类似 moment.js 的库将“10 Dec, 2019T14:07:21”转换为 ISO Date 我更新了答案,解释了如何使用 Moment.js 库将字符串日期转换为 Date 对象。以上是关于如何在javascript中获取几天前的日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章