请考虑以下情况: -
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day;//alert(output);
var incept_dt = new Date();
var incept_dt = "2014-01-04";
我想在incept_dt中增加1天。我的预期incep_dt将是: -
var incept_dt = "2014-01-05";
我在下面尝试过: -
incept_dt = incept_dt.setDate(incept_dt.getDate() + 1);
但是低于错误: -
TypeError:incept_dt.getDate不是函数 incept_dt = incept_dt.setDate(incept_dt.getDate()+ 1);
请提出任何建议。提前谢谢。
答案 0 :(得分:1)
尝试这种方式:
var incept_dt = new Date(2014, 1, 4);
var daysToAdd = 1;
incept_dt.setDate( incept_dt.getDate() + daysToAdd );
要更改日期的显示格式,您可以尝试以下方式:
var fullYear = incept_dt.getFullYear().toString();
var _year = fullYear.substring( 2 );
var _month = incept_dt.getMonth().toString();
_month = _month.lenth > 1 ? _month : ( '0' + _month );
var _date = incept_dt.getDate().toString();
_date = _date.length > 1 ? _date : ( '0' + _date );
// use this wherever you want.
var date_to_display = _year + "-" + _month + "-" + _date;
//alert( date_to_display );
答案 1 :(得分:1)
添加24小时怎么样?
var date = new Date;
date = new Date(+date + 3600000 * 24);
或者,使用get/setDate
:
var date = new Date;
date.setDate(date.getDate() + 1);
这是一个格式化日期对象的函数:
function format(date) {
return [
date.getFullYear(),
('0' + (date.getMonth() + 1)).slice(-2),
('0' + date.getDate()).slice(-2)
].join('-')
}
用法示例(以YYYY-MM-DD
格式提供今天的日期):
format(new Date) // "2014-01-02"
所有在一起:
var date = '2014-01-04';
date = new Date(date);
date.setDate(date.getDate() + 1);
date = format(date); // "2014-01-05"
答案 2 :(得分:1)
因此,根据我的问题的确切答案,我会做以下事情: -
var incept_dt = new Date();
var incept_dt = new Date("2014-01-04");
incept_dt = incept_dt.setDate(incept_dt.getDate() + 1);
incept_dt = new Date(incept_dt);
var incept_month = (incept_dt.getMonth()+1);
var incept_day = incept_dt.getDate();
incept_dt = incept_dt.getFullYear() + '-' +
((''+incept_month).length<2 ? '0' : '') +incept_month + '-' +
((''+incept_day).length<2 ? '0' : '') + incept_day;
注意: - 为了转换到时间,我从@Ravinder的帖子中得到概念。
答案 3 :(得分:0)
因为你的变量是字符串而不是日期对象。
尝试:
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
这是您更新的代码:
var incept_dt= new Date('2014-05-01');
incept_dt.setDate(incept_dt.getDate() + 1);
编辑后仍然是一个字符串而不是日期:
var incept_dt = new Date();
var incept_dt = "2014-01-04";
你初始化日期然后把它变成一个字符串。
答案 4 :(得分:0)
您需要将incept_dt
从字符串转换为日期功能之前的日期。
incept_dt = new Date(incept_dt); //Convert to Date
incept_dt.setDate(incept_dt.getDate()+1); //Add one day
incept_dt = incept_dt.getUTCFullYear() + '-' + (incept_dt.getUTCMonth() + 1) + '-' + incept_dt.getUTCDate(); //Convert back to string
答案 5 :(得分:0)
因为incept_dt
是string
变量,而不是Date
类型。因此,首先将其转换为Date
类型,然后添加日期。
首先,您必须解析您的string
日期到Date
。
var incept_dt = "2014-01-05".split("-");
var in_date = new Date(incept_dt[0], incept_dt[1], incept_dt[2])
现在您可以执行Date
方法操作。
in_date.setDate(in_date.getDate() + 1)
最后,
var incept_dt = "2014-01-05".split("-");
var in_date = new Date(incept_dt[0], incept_dt[1], incept_dt[2])
in_date.setDate(in_date.getDate() + 1)
console.log(in_date)
var yy = in_date.getFullYear();
var mm = in_date.getMonth() + 1;
var dd = in_date.getDate();
var final_Date = yy + "-"+ mm + "-"+ dd;
答案 6 :(得分:0)
因为incept_dt是一个变量,所以将它转换为日期
var date = new Date(incept_dt); // convert string to date
当您使用ISO格式YYYY-MM-DD时,您不必担心格式化
如果你想要格式,你可以
var dd = date.getDate();
var mm = date.getMonth() + 1;
var y = date.getFullYear();
var som_date = dd + '/'+ mm + '/'+ y;
然后添加这样的日子
var numberOfDaysToAdd = 6;
date.setDate(date + numberOfDaysToAdd);
答案 7 :(得分:0)
只需使用moment.js,您就不必跳过这么多箍。
// create a moment from your start date string
var m = moment('2014-01-04', 'YYYY-MM-DD');
// add a day
m.add(1, 'days');
// get a new string
var s = m.format('YYYY-MM-DD');
// or if you need a Date object
var dt = m.toDate();