用 JavaScript 计算昨天的日期

新手上路,请多包涵

如何在 JavaScript 中将 昨天 计算为日期?

原文由 Omega 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 758
2 个回答
var date = new Date();

 date ; //# => Fri Apr 01 2011 11:14:50 GMT+0200 (CEST)

 date.setDate(date.getDate() - 1);

 date ; //# => Thu Mar 31 2011 11:14:50 GMT+0200 (CEST)

原文由 James Kyburz 发布,翻译遵循 CC BY-SA 2.5 许可协议

[2022 年 4 月]这是 扩展 Date 原型的片段( _不污染全局命名空间_)

[2020 年 9 月编辑] :包含先前答案并添加箭头功能的片段。

 // a (not very efficient) oneliner
let yesterday = new Date(new Date().setDate(new Date().getDate()-1));
console.log(`Yesterday (oneliner)\n${yesterday}`);

// a function call
yesterday = ( function(){this.setDate(this.getDate()-1); return this} )
            .call(new Date);
console.log(`Yesterday (function call)\n${yesterday}`);

// an iife (immediately invoked function expression)
yesterday = function(d){ d.setDate(d.getDate()-1); return d}(new Date);
console.log(`Yesterday (iife)\n${yesterday}`);

// oneliner using es6 arrow function
yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);
console.log(`Yesterday (es6 arrow iife)\n${yesterday}`);

// use a method
const getYesterday = (dateOnly = false) => {
  let d = new Date();
  d.setDate(d.getDate() - 1);
  return dateOnly ? new Date(d).toDateString() : d;
};
console.log(`Yesterday (method)\n${getYesterday()}`);
console.log(`Yesterday (method dateOnly=true)\n${getYesterday(true)}`);

// use Date.now
console.log(`Yesterday, using Date.now\n${new Date(Date.now() - 864e5)}`);
 .as-console-wrapper {
    max-height: 100% !important;
}

原文由 KooiInc 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题