簡體   English   中英

JavaScript日期代理很奇怪

[英]Javascript Date acting weird

好的,我聽說過,但是現在我可以確認Javascript日期功能是一個災難區。 我用它創造了一個怪物。 我有這個程序:

JSON對象包含假期日期列表及其各自的標簽。 我需要找出從今天起5個工作日的日期(如果不包含在JSON對象中,則不包括周六,周日和節假日。)到目前為止,還不錯。 然后,這5個工作日的日期將被jquery日歷占用,作為默認的選定日期 ,該日期不包含在小提琴中,因為它是無關緊要的。 (注意:壓延機的開始日期是明天的日期)。 然后,進入這一部分:如果今天是中午之前,則可以選擇明天, 否則開始日期是明天之后的第二天。 我正在詳細說明這一點,因為它已包含在此小提琴中。

因此,問題在於處理上述功能的函數的多次初始化無法產生一致的結果。 它在我的系統上計算了5個工作日,但是當我進行此操作時,它正在計算4。 “第5個”工作日的日期在每個呼叫中​​增加1。

http://jsfiddle.net/xXQ7j/27/

任何人!

您的問題可能是由時區問題引起的。

只要有可能,就應該使用new Date(y, m, d)創建一個日期對象,而不是提供一個字符串。 特別是,我發現如果您以yyyy-mm-dd格式指定字符串,則相對於00:00 UTC會得到一個日期,而如果您使用yyyy/mm/dd則相對於本地午夜會得到一個日期。

無論如何,我建議使用其他方法:

  1. 將您的假期日期轉換為對象,日期為關鍵
  2. 產生今天的日期
  3. 如果是中午之后,則獲取明天的日期d.setDate(d.getDate() + 1)
  4. 創建一個空數組
  5. 加一天(以上#3)
  6. 檢查新的一天是星期六還是星期日,如果是,請返回到#5
  7. 檢查新的一天是否在假期列表中,如果是,請返回到#5
  8. 將新日期添加到數組
  9. 重復直到您有10個條目

這樣可以為您提供陣列中的下一個10個工作日。 選擇您需要填寫日期選擇器的選項。

暫無
暫無

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

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