【问题标题】:How to deal with months that have 31 days vs those that only have 30? [duplicate]如何处理有 31 天的月份和只有 30 天的月份? [复制]
【发布时间】:2017-01-25 18:38:51
【问题描述】:

我正在尝试创建一个差事提醒。这个想法是用户可以创建一个提醒,他们可以设置提醒的频率。他们可以选择每天、每周或每月提醒。现在,如果他们选择每周,我只需要知道他们想要提醒的星期几,一切都很好。然而,这个问题是每月一次。如果用户想在每月 31 日收到提醒怎么办?有些月份显然没有,而且提醒每个月都会发出,我没有理由跟踪月份本身。

我真的不知道该怎么做。 如果重要的话,这是一个 node.js 应用程序。

【问题讨论】:

  • 虽然不值钱,但 moment.js 是一个很棒的库,你可以随时处理日期。
  • 如果他们想在每个月的 31 日收到提醒,那么您的用户就崩溃了。除了防止像这样的愚蠢、无意义的决定之外,您无法修复用户。
  • 别忘了二月,有 28 天,偶尔还有 29 天!显然,您需要弄清楚一些事情,而您所做的只是一个见仁见智的问题。有些人会主张在这类事情上使用“本月的最后一天”。
  • 考虑将问题处理为“从月初/月底开始的天数”而不是“月中的天数”
  • 说用户坏了并不是真的。以想要提醒每月约会或账单的用户为例。 31号就不能安排论文了吗?

标签: javascript node.js date


【解决方案1】:

如果一个月没有 31 日(或像二月这样的 30 日),您可以使用该月的最后一天作为后备日。

当您创建具有下个月的日期并将日组件设置为零时,JavaScript 会为您提供一个月的最后一天:

new Date(yyyy, mm, dd)

由此: - mm 表示月份,从 0 开始 - dd 表示日期,从 1 开始

new Date(2017, 0, 25) 是 2017 年 1 月 25 日

new Date(2017, 1, 0) 是 2017 年 1 月 31 日

【讨论】:

    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 2013-06-23
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多