【问题标题】:What's the simplest way to decrement a date in Javascript by 1 day?将Javascript中的日期减少1天的最简单方法是什么?
【发布时间】:2010-09-07 02:40:56
【问题描述】:

我需要将 Javascript 日期递减 1 天,以便它正确回滚数月/数年。也就是说,如果我有一个“今天”的日期,我想得到“昨天”的日期。

当我这样做时,似乎总是需要更多的代码,所以我想知道是否有更简单的方法。

最简单的方法是什么?

[编辑:为了避免下面的答案混淆,这是一个 JavaScript 问题,而不是 Java 问题。]

【问题讨论】:

标签: javascript browser date


【解决方案1】:

var d = new Date();
d.setDate(d.getDate() - 1);

console.log(d);

【讨论】:

  • 这将返回错误的日期。在 UTC -03:00 下,检查 var d = new Date(2014,9,19) d.setDate(d.getDate()-1); // 将返回 10 月 17 日
  • 它也返回错误的年份。 new Date(new Date().getDate()-1) 为我返回 1969
  • 当我运行代码 sn-p 时,这根本不会减少日期。
【解决方案2】:
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);

【讨论】:

    【解决方案3】:
     day.setDate(day.getDate() -1); //will be wrong
    

    这将返回错误的日期。在 UTC -03:00 下,检查

    var d = new Date(2014,9,19);
    d.setDate(d.getDate()-1);// will return Oct 17
    

    更好的使用:

    var n = day.getTime();
    n -= 86400000;
    day = new Date(n); //works fine for everything
    

    【讨论】:

      【解决方案4】:

      getDate()-1 应该可以解决问题

      快速示例:

      var day = new Date( "January 1 2008" );
      day.setDate(day.getDate() -1);
      alert(day);
      

      【讨论】:

        【解决方案5】:
        origDate = new Date();
        decrementedDate = new Date(origDate.getTime() - (86400 * 1000));
        
        console.log(decrementedDate);
        

        【讨论】:

          【解决方案6】:

          setDate(dayValue)

          dayValue 是一个从 1 到 31 的整数,代表月份中的哪一天。

          来自https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate

          解决您(和我)问题的行为似乎超出了规范范围。

          似乎需要 addDate()、addMonth()、addYear() ... 函数。

          【讨论】:

            【解决方案7】:

            在 JS 中处理日期可能会让人头疼。所以最简单的方法是使用moment.js 进行任何日期操作。

            减去一天:

            const date = moment().subtract(1, 'day')
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-02-05
              • 2017-04-08
              • 1970-01-01
              • 2012-01-13
              • 1970-01-01
              • 1970-01-01
              • 2021-12-31
              • 1970-01-01
              相关资源
              最近更新 更多