【问题标题】:Current date minus n days formatted 'mm/dd/yyyy'当前日期减去 n 天,格式为 'mm/dd/yyyy'
【发布时间】:2020-03-20 11:46:52
【问题描述】:

我尝试在 javascript 中获取当前日期减去一些增量天数并将结果格式化为 mm/dd/yyyy。 我写了这段代码:

  <script>
     function deltadata(d_delta) {
         var d = new Date();

         d.setDate(d.getDate() - d_delta);
         var dd = String(d).padStart(2, '0');
         var mm = String(d.getMonth +1).padStart(2, '0');
         var yyyy = d.getFullYear();

         today = mm + '/' + dd + '/' + yyyy;

         return today;
       }
  </script>

但结果不是我所期望的

function getMonth() { [native code] }1/Wed Feb 19 2020 12:45:49 GMT+0100 (Central European Standard Time)/2020

有人可以帮帮我吗?

提前非常感谢

【问题讨论】:

  • var mm = String(d.getMonth +1) - 你想在那里调用 getMonth,但你忘了包括(),实际上这样做......
  • var dd = String(d).padStart(2, '0'); 出现完全错误,您在此处操作的是完整日期对象的字符串表示 - 这应该使用getDate,与下一行使用/尝试使用getMonth 相同…
  • var dd = String(d).padStart(2, '0') 应该是var dd = String(d.getDate()).padStart(2, '0')

标签: javascript date


【解决方案1】:

您可以为此目的使用Date.prototype.toLocaleDateString(),并相应地指定格式选项:

const deltaDate = n => {
  const today = new Date()
  today.setDate(today.getDate() - n)
  return today
    .toLocaleDateString('en-US', {month:'2-digit',day:'2-digit',year:'numeric'})
}

console.log(deltaDate(3))

【讨论】:

    猜你喜欢
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多