我正在尝试获取日期的月份,但它一直向我显示:"2018-81-26 07:00"
..这是我用来设置所需日期的函数:
selectStartTime(time) {
this.selectedTime = '' + time.time + ' ' + time.period;
var date = new Date(this.start_at); // this shows good date:
//Wed Sep 26 2018 00:00:00 GMT+0200 (Central European Summer Time)
var period = time.period;
var hours = '';
// error occurs here:
var year = date.getFullYear() + '-' + date.getMonth()+1 + '-' + date.getDate();
// year: 2018-81-26 07:00
if (period === 'PM') {
hours = '' + (time.value + 12) + ':00';
this.campaignModel.starts_at = year + ' ' + hours;
} else {
hours = time.time;
this.campaignModel.starts_at = year + ' ' + hours;
}
}
我在做什么错了?
答案 0 :(得分:4)
只需在代码下方更改
var year = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
答案 1 :(得分:3)
实际上是因为+1
var year = date.getFullYear() + '-' + date.getMonth()+1 + '-' + date.getDate();
它将获得等于8的date.getMonth,但是由于您正在执行+1,并且var被视为字符串,因此与其添加一个数字,而不是在其末尾添加数字1,从而使其成为81 < / p>
如果出于任何原因您需要+1,则应先手动声明
var month = year.getMonth() + 1;
var year = date.getFullYear() + '-' + month+ '-' + date.getDate();
或者像其他答案一样正确执行
var year = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
答案 2 :(得分:2)
尝试一下。
var year = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
答案 3 :(得分:-2)
我建议您使用流行的库来处理/处理日期和时间 https://momentjs.com/
var d = moment(scope.date);
d.month(); // 1
d.format('ddd MMM DD YYYY'); // 'Mon Feb 01 2016
答案 4 :(得分:-2)
今天,我在很多方面都使用Momentjs更好
您可以设置日期格式并检索日期的任何部分
moment().format('MMMM Do YYYY, h:mm:ss a'); // September 25th 2018, 10:02:25 am
moment().format('dddd'); // Tuesday
moment().format("MMM Do YY"); // Sep 25th 18
moment().format('YYYY [escaped] YYYY'); // 2018 escaped 2018
moment().format(); // 2018-09-25T10:02:48-03:00