2017-04-10 44 views
0

Im新到了momentJs,所以我需要一些幫助。我正在構建一個表單,用戶可以在某個工作週期內發送其可用性。所以在表單中你有startDate,startTime,endDate和endTime。由於我必須從客戶端使用api,我們必須發送這樣的日期(例如)「2015-06-17T14:24:36」(中間的'T')。目前我收到彼此的日期和時間,但最終將它們合併在一起,因此它符合api的閱讀日期。檢查開始日期時間和結束日期時間在瞬間是否有效

現在我的問題如下。我必須創建一個檢查位置,以查看輸入的startdate-time和enddate-time是否有效。例如startdate總是必須是結束日期之前的一個日期(相當邏輯正確)。但是在jJJ中有沒有簡單的方法來做到這一點?

或者我應該使用另一種方法?

非常感謝,如果我的問題不太清楚,請讓我知道,以便我可以提供額外信息!

注:到底應該是這樣的:

VAR開始= 「2017-06-17T14:24:36」

VAR結束=「2017-07-03T14:24: 36"

來檢查,如果開始日期和結束日期是有效的

結果函數=真

回答

0

如果您只需檢查startDate是否在endDate之前,您可以使用isAfter

這裏工作示例:

var start = "2017-06-17T14:24:36"; 
 
var end = "2017-07-03T14:24:36"; 
 

 
function checkDate(start, end){ 
 
var mStart = moment(start); 
 
var mEnd = moment(end); 
 
return mStart.isBefore(mEnd); 
 
} 
 

 
console.log(checkDate(start, end));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


在我的第一個例子中,我使用moment(String)解析接受ISO 8601格式輸入。

如果您需要解析非ISO 8601格式,則可以使用指定輸入格式的moment(String, String)(例如var mStart = moment(start, 'DD-MM-YYYYTHH:mm:ss');)。

如果你必須支持多種格式,你可以使用moment(String, String[])。由於文檔指出moment(String, String[])

  • 不想導致了無效問卷,有效的日期格式。
  • 更喜歡解析更多字符串而不是更少的格式,並且使用比less更多的格式,即更喜歡更嚴格的解析。
  • 優先考慮數組中較早的格式。
+0

是的!這真是我正在尋找的東西!只是一個額外的問題..是否也可以在同一個字符串中將YYYY-MM-DD格式切換爲DD-MM-YYYY?或者會不會意識到這一點? –

+0

@TomLuijten你的意思是你必須同時接受'YYYY-MM-DDTHH:mm:ss'和'DD-MM-YYYYTHH:mm:ss'? – VincenzoC

+0

我的意思是說我們的客戶有一個習慣每隔一段時間改變一些東西,所以現在他使用的是YYYY-MM-DDThh:mm:ss格式,但它可能會更改爲DD-MM-YYYYThh:mm:ss,最終我只使用這兩個選項之一,但我只是想知道如果時刻也可以使用日期格式的其他方式:) –

相關問題