以下是我对此的解决方案: 感谢您提供的所有建议和帮助。我最终使用了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);
}
答案 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);