【问题标题】:How to get the date in days ago in javascript [duplicate]如何在javascript中获取几天前的日期[重复]
【发布时间】:2020-04-12 17:28:27
【问题描述】:

所以, 我有这个 10 Dec, 2019T14:07:21 来自后端的日期格式,我需要的是找到多少天前。

比如今天是 20 ,所以今天的日期是 0 天前。

【问题讨论】:

标签: javascript date npm


【解决方案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 对象。
        猜你喜欢
        • 2017-10-23
        • 2014-04-29
        • 1970-01-01
        • 2015-08-04
        • 2022-11-03
        • 2014-05-29
        • 2020-10-03
        • 1970-01-01
        相关资源
        最近更新 更多