Javascript moment.js-从周日减去1天,不按预期工作

Javascript moment.js-从周日减去1天,不按预期工作,javascript,momentjs,Javascript,Momentjs,我有一个力矩对象,我想从中减去1天。原始日期显示为2018年7月15日星期日12:00:00,我想从中减去1天,以便输出为2018年7月14日星期六12:00:00 如果我使用subtract()函数,这看起来应该很容易,但是它将日期更改为即将到来的星期六,而不是7月15日之前的星期六。我想这与7月15日开始的一周有关 这似乎只是我用星期天作为开始日期时的一个问题。我怎样才能使它按我需要的方式工作 这是我的JS: var timeFormat = 'dddd h:mma'; var origin

我有一个力矩对象,我想从中减去1天。原始日期显示为2018年7月15日星期日12:00:00,我想从中减去1天,以便输出为2018年7月14日星期六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);
这将输出
太阳2018年7月15日12:00:00
作为
原始日期
周六2018年7月21日12:00:00
作为减去1天的日期。如您所见,出于某种原因,新日期现在是7月21日星期六


这里有一个JSFiddle链接:

问题是您使用格式化字符串来创建
newDate
。字符串表示如下内容: “周六下午12:00:00”。MomentJs不知道周六是什么意思,所以只知道下一个周六,也就是7月21日

如果您只需使用前一天的
时刻
并对其进行格式化,它就可以工作:

固定: