如何在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中获取几天前的日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在linux中获取几天前或者几天后的日期

MySQL内置函数获取几天前的日期

MySQL内置函数获取几天前的日期

如何获取 7 天前的日期?

如何在javascript中计算X天前[重复]

H2 从当前时间获取 1 天前的日期