如何在Javascript中从Date中减去10天

时间:2014-02-12 18:16:03

标签: 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);
}

4 个答案:

答案 0 :(得分: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();
    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);
}

答案 1 :(得分:1)

制作日期实例:

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

然后将时间戳设置为10天:

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

您不能依赖浏览器能够/愿意解析日期格式“2014年2月12日”。如果您在日期格式中完全没有选择,那么您必须自己解析或使用a helper library。 (Another possibility here.

答案 2 :(得分:0)

试试这个:

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);

答案 3 :(得分:0)

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

var d = new Date(date);