JS在日期范围选择器中格式化日期



我在角度 4 中有一个日期范围选择器,我想在选择日期范围时获取开始日期和结束日期。当我这样做时console.log(value)它显示如下响应:

{start: Moment, end: Moment}
end:
Moment
_d : Thu Apr 19 2018 23:59:59 GMT-0500 (CDT) {}
_i : (6) [2018, 2, 25, 12, 0, 0]
_isAMomentObject : true
_isUTC:false
_isValid:true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /d{1,2}(th|st|nd|rd)/, …}
_pf:{empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -1, charsLeftOver: 0, …}
__proto__ :Object
start: Moment
_d: Mon Apr 09 2018 00:00:00 GMT-0500 (CDT) {}
_i:(6) [2018, 2, 25, 12, 0, 0]
_isAMomentObject: true
_isUTC: false
_isValid:true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /d{1,2}(th|st|nd|rd)/, …}
_pf:
{empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -1, charsLeftOver: 0, …}
__proto__: Object

然后我尝试使用 stringify 并console.log(JSON.stringify(datepicker.start));这给了我这样的结果: 2018-04-16T05:00:00.000Z

所以我试了这个:

const date = new Date(JSON.stringify(datepicker.start));
const date_str = moment(date).format('DD.MM.YYYY');
console.log(date_str);

此控制台显示为无效日期。

如何将其转换为正常日期,如下所示: '2018-05-01' ?

如果您需要实际的 JS 日期对象,您可以使用_dstart/end的属性,例如

datepicker.start._d
datepicker.end._d

这将返回您的JS日期对象,您无需字符串化并传递给Date构造函数等

最新更新