【问题标题】:moment.js - subtract 1 day from Sunday not working as expectedmoment.js - 从星期日减去 1 天未按预期工作
【发布时间】:2018-07-19 17:27:20
【问题描述】:

我有一个时刻对象,我想从中减去 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/

【问题讨论】:

标签: javascript momentjs


【解决方案1】:

问题是您使用格式化的字符串来创建newDate。字符串是这样说的: '星期六下午 12:00:00'。 MomentJs 不知道您的实际意思是星期六,所以它只需要下一个,即 7 月 21 日。

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

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多