我有一个矩对象,我想从中减去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/
答案 0 :(得分:0)
问题是您使用格式化的字符串来创建newDate
。该字符串表示如下内容:
“星期六12:00:00 pm”。 MomentJs没有任何信息,您实际上指的是星期六,所以只取下一个星期六,即7月21日。
如果仅使用previousDay
时刻对其进行格式化,则可以使用:
https://jsfiddle.net/b5ev8knd/36/