鍍金池/ 問答/HTML/ 如何判斷日期之間不能有交叉

如何判斷日期之間不能有交叉

圖片描述

如圖為場景需求:如何實現(xiàn)每次新增時,新增數(shù)據(jù)中的入住年月(不能為空)和騰退年月(可為空)的時間段不能與表格中其他紀錄的時間段有交叉和重復(fù)?(表格中的數(shù)據(jù)存放在一個數(shù)組中)

回答
編輯回答
有點壞

使用時間戳,簡單易懂,后期也方便維護

2018年3月28日 09:35
編輯回答
不歸路

我提供個不一樣的思路:
搜索“活動安排問題”,然后把c改成js實現(xiàn)應(yīng)該就行了。。。。(逃。。

2017年9月30日 12:34
編輯回答
歆久

日期轉(zhuǎn)換成時間戳進行比較。
新增的時間 不包含在 【入住年月】和 【騰退年月】之間就可以了。

2018年4月16日 07:35
編輯回答
墻頭草

這個其實你還可以進一步細化條件(約束),特別是隱含的。比如:
約定新增的起始日期為startDate,騰退日期為endDate,endDate>startDate

  1. 新增不能在當前日期(cDate)以前,startDate>=Date, endDate>startDate
  2. 有效時間段是一個二維數(shù)組chkDate,其以子項chkDate[i][0]排序,升序排列的數(shù)組,初始狀態(tài)是chkDate=[[cDate,]],表示從當前日期開始的有效時間(結(jié)束時間未定的),如果chkDate=[]表明沒有有效時間段段可能了。
  3. 增加一條時先在有效時間段中檢測是否還有空,即chkDate!=[],就輪訓(xùn)chkDate,在此基礎(chǔ)上確定一個startDate,注意這個變量需要在chkDate中看。
2018年5月27日 22:58
編輯回答
擱淺

遍歷數(shù)據(jù)將入住年月-騰退年月轉(zhuǎn)換為時間戳數(shù)組列表
新增時判斷有沒有和已有時間戳數(shù)組重復(fù)即可

2017年8月26日 17:57