[英]Moment.js - I'm parsing date but it still complains
Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info. Arguments: [object Object]
據我所知,我正在根據解析文檔解析日期。
有什么建議么?
function graphTitleGenerator(data) {
var formats = {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: 'MM/DD/YYYY',
sameElse: 'MM/DD/YYYY'
}
var today = new Date();
var refDate = (today.getMonth()+1) + '-' + today.getDate()
+ '-' + today.getFullYear();
var graphTitle = moment(data.date, 'MM-DD-YYYY').calendar(refDate, formats);
return graphTitle;
}
嘗試格式 - 'MD-YYYY',因為月份和日期是單個數字,並且您不是前綴0。
您的代碼中的問題是refDate
變為: '9-4-2016'
並且這不是已知的格式。 因此,對.calendar()
的調用會拋出該錯誤。
所以,我建議您將代碼更改為:
function dateToMDY(date) {
var d = date.getDate();
var m = date.getMonth() + 1;
var y = date.getFullYear();
return '' + (m <= 9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d) + '-' + y;
}
function graphTitleGenerator(data) {
var formats = {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: 'MM/DD/YYYY',
sameElse: 'MM/DD/YYYY'
}
var today = new Date();
var refDate = dateToMDY(today);
var graphTitle = moment(data.date, 'MM-DD-YYYY').calendar(refDate, formats);
return graphTitle;
}
當您調用日歷時,它將接受refDate的時刻對象。 從您想要的那一刻開始,只需一個月,您的代碼可以編寫如下:
function graphTitleGenerator(data) {
var formats = {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: 'MM/DD/YYYY',
sameElse: 'MM/DD/YYYY'
}
var graphTitle = moment(data.date, 'MM-DD-YYYY').calendar(moment().add(1, month), formats);
return graphTitle;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.