当月份从 0 开始时从字符串中获取日期

get date from string when months start from 0

我一直以 jan 为 0 和 dec 为 11 的格式保存我的日期,然后使用 moment([yearVal, monthVal, dateVal]) 创建新的时刻。但是现在有时我需要使用字符串来创建一个时刻。问题是我无法找到一种方法来解析它,因为它认为 jan 是第 0 个月而不是第 1 个月。

var currentDateText = "2015-0-25";
var newDate = moment(currentDateText, "YYYY-M-D").add(1, 'month');

除了上个月有 30 天而当前有 31 天的月份之外,上面的代码有效。有没有办法将字符串“2015-0-25”解析为 2015 年 1 月 25 日?

没有以这种方式解析日期的内置方法,因为这不是通常编写日期的方式。

您可以将字符串拆分为组件,并从中创建一个日期:

var s = currentDateText.split('-');
var newDate = new Date(parseInt(s[0], 10), parseInt(s[1], 10), parseInt(s[2], 10));

没有内置方法,我不认为 moment 也提供一次。

您可以拆分字符串,然后使用 Date 构造函数创建日期对象。

var currentDateText = "2015-0-25";
var arr = currentDateText.split('-');
var date = new Date(arr[0], arr[1], arr[2])
var newDate = moment(date).add(1, 'month');