问题描述和重现步骤:
var response
var date = moment(new Date(response))
moment("2001-03-03T00:00:00.000")
年份默认为2001年。由于用户可能以自己的格式输入日期,因此我不想添加格式,因为我不知道他们可能想要输入的格式。< / p>
环顾四周后,我发现了一些Moment github问题(#635,#912),提到问题已经解决,但我仍然是2001年的默认年份。
如果没有说明,我还建议将年份设置为今年:
if (date.year() === 2001) {
date.year() = moment().year();
}
这有效,但感觉就像一个肮脏的解决方案。任何想法,我可以做什么呢?
提前致谢!
当前环境
v8.9.4
v2.20.1
v1.19.3
v3.14.0
p / s还是相当新的stackoverflow / github问题,而不是确定我应该在哪里发布。如果您需要更多信息,请与我们联系!
答案 0 :(得分:0)
将moment
与格式字符串一起使用以确保格式正确。您可能希望强制用户提供年份或使用日期选择器。机器只能这么做
console.log(moment('3/3', 'MM/dd').toString());
// or
console.log(moment('3/3', 'dd/MM').toString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.js"></script>