簡體   English   中英

在兩個不同的星期獲得同一周 - momentjs

[英]Getting the same week for two different weeks - momentjs

我得到這兩個日期的同一周,即使在查看日歷時它們處於不同的星期。 我究竟做錯了什么?

  moment()
    .set({
      year: 1982,
      month: 3,
      day: 21,
      hour: 0,
    })
    .weeks()

  moment()
    .set({
      year: 1982,
      month: 3,
      day: 26,
      hour: 0,
    })
    .weeks()

兩者的結果都是 17。

1982 年 3 月 21 日是星期日。 1982 年 3 月 26 日是星期五。 如果您位於美國/加拿大或任何以星期日為一周的第一天的地方,它們在同一周。 所以你得到了正確的結果。

請參閱: https://momentjs.com/docs/#/customization/dow-doy/在“一周的第一天和一年的第一周”部分下

// ISO-8601, Europe
moment.updateLocale("en", { week: {
  dow: 1, // First day of week is Monday
  doy: 4  // First week of year must contain 4 January (7 + 1 - 4)
}});

// US, Canada
moment.updateLocale("en", { week: {
  dow: 0, // First day of week is Sunday
  doy: 6  // First week of year must contain 1 January (7 + 0 - 1)
}});

// Many Arab countries
moment.updateLocale("en", { week: {
  dow: 6, // First day of week is Saturday
  doy: 12 // First week of year must contain 1 January (7 + 6 - 1)
}});

// Also common
moment.updateLocale("en", { week: {
  dow: 1, // First day of week is Monday
  doy: 7  // First week of year must contain 1 January (7 + 1 - 1)
}});

根據 Moment.JS 文檔:

一年中的星期取決於哪一天是一周的第一天(星期日、星期一等),以及哪一周是一年中的第一周。 例如,在美國,星期日是一周的第一天。 1 月 1 日所在的那一周是一年中的第一周。

在您的示例 1982 中,一年的第一天是星期五,這意味着每個星期五周數都會增加。 因此,即使從星期日到星期六,4 月 21 日和 4 月 26 日(分別是你們的日期)在不同的星期。 由於 Moment.JS 用於確定一年中的星期幾的語言環境,它們在技術上是同一周。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM