【问题标题】:Moment.js default year is 2001Moment.js 默认年份是 2001
【发布时间】:2018-02-01 02:12:07
【问题描述】:

问题描述和重现步骤:

  1. 接收用户输入为 3/3 var response
  2. 解析成日期变量var date = moment(new Date(response))
  3. 做一个日期的console.log给moment("2001-03-03T00:00:00.000")

年份默认为 2001。由于用户可能以自己的格式输入日期,因此我不想添加格式,因为我不知道他们可能要输入的格式。

环顾四周,我发现了一些 Moment github 问题(#635#912),其中提到问题已解决,但我仍然得到默认年份 2001。

我还发现了一个建议,如果不指定,将年份设置为今年:

if (date.year() === 2001) {
    date.year() = moment().year();
}

这可行,但感觉像是一个肮脏的解决方案。有什么想法可以代替吗?

提前致谢!

当前环境

  1. Node.js v8.9.4
  2. Moment.js v2.20.1
  3. VS 代码v1.19.3
  4. MS Bot SDK v3.14.0

p/s 对 stackoverflow/github 问题来说还是很新的,并且不确定我应该在哪里发布。如果您需要更多信息,请告诉我!

【问题讨论】:

标签: javascript node.js date momentjs


【解决方案1】:

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2023-03-10
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多