繁体   English   中英

如何从 Javascript 中的日期减去 10 天

[英]How to subtract 10 Days from Date in Javascript

这是我的解决方案:感谢您的所有建议和帮助。 我最终使用了 moment.js,现在这种日期情况正在按我的需要工作。 这是我对 moment.js 所做的:

var preorderdate = moment(date).subtract('days',10).format('MMMM D, YYYY');
var releasedate = moment(date).format('MMMM D, YYYY');

我重命名了一些变量,但你可以看到我取了日期变量,减去了 10 天,并将其格式化为 2014 年 2 月 12 日。我取了一个单独的变量,并用 moment.js 对其进行了格式化。 这个脚本非常棒。 如果没有 Pointy 的建议,我永远也不会找到它。 非常感谢大家!

我不是 JS 专家,但我试图从一串“2014 年 2 月 12 日”中减去 10 天但无济于事。 所以当我运行我的代码时,我试图让它显示为“2014 年 2 月 2 日”。

function isbnPreOrder (isbn, date) {
    var date = 'February 12, 2014';
    var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var d = new Date();
    var curr_date = d.getDate()-10;
    var curr_month = d.getMonth();
    var curr_year = d.getFullYear();
    var predate = (m_names[curr_month]+" "+curr_date+", "+curr_year);
}

创建一个 Date 实例:

var date = new Date("2014-02-12");

然后将其时间戳设置回 10 天:

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

您不能依赖能够/愿意解析日期格式“2014 年 2 月 12 日”的浏览器。 如果您在日期格式上根本没有选择,那么您将不得不自己解析它或使用辅助库 这里的另一种可能性。

我会将您的功能修改为:

function isbnPreOrder (isbn, date) {
    var date = 'February 12, 2014';
    var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var d = new Date();
    var curr_date = d.getDate();
    var curr_month = d.getMonth();
    var curr_year = d.getFullYear();
    var predate = (m_names[curr_month]+" "+curr_date+", "+curr_year);
    var x = 10;
    predate.setDate(predate.getDate() - x);
}

尝试这个:

function isbnPreOrder (isbn, date) {
var date = 'February 12, 2014';
var m_names = new Array("January", "February", "March", "April", "May", "June", "July",   "August", "September", "October", "November", "December");
var d = new Date();
var curr_date = d.setDate(d.getDate()-10);
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var predate = (m_names[curr_month]+" "+curr_date+", "+curr_year);

除了一行之外,一切都是正确的。 date变量传递到您的Date初始化中。

var d = new Date(date);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM