moment.js-从星期日减去1天无法正常工作

时间:2018-07-19 17:27:21

标签: javascript momentjs

我有一个矩对象,我想从中减去1天。原始日期显示为Sun Jul 15 2018 12:00:00,我想从中减去1天,以便输出为Sat Jul 14 2018 12:00:00

如果我使用subtract()函数,这似乎应该很容易,但是它将日期更改为即将到来的星期六,而不是7月15日之前的星期六。我假设这与从7月15日开始的一周。

这似乎仅是在我使用星期日作为开始日期时出现的问题。如何按照需要的方式进行这项工作?

这是我的JS:

var timeFormat = 'dddd h:mma';
var originalDate = moment("sunday 12:00:00pm", timeFormat);
var previousDay = moment(originalDate).subtract(1, 'days').format(timeFormat);
var newDate = moment(previousDay+"12:00:00pm", timeFormat);

$(".openTime span").text(originalDate);
$(".newOpenTime span").text(newDate);

这会将Sun Jul 15 2018 12:00:00输出为originalDate,将Sat Jul 21 2018 12:00:00输出为减去1天的日期。如您所见,由于某种原因,新日期现在为Sat Jul 21

这是一个JSFiddle链接:https://jsfiddle.net/dmcgrew/b5ev8knd/22/

1 个答案:

答案 0 :(得分:0)

问题是您使用格式化的字符串来创建newDate。该字符串表示如下内容: “星期六12:00:00 pm”。 MomentJs没有任何信息,您实际上指的是星期六,所以只取下一个星期六,即7月21日。

如果仅使用previousDay时刻对其进行格式化,则可以使用: https://jsfiddle.net/b5ev8knd/36/