我有這樣的日期字符串1 May 2010 To 15 Aug 2016
。我只是想檢查這是我的函數上的日期字符串,而不是繼續一個函數。當我檢查此字符串與new Date(value)
它返回Invalid日期。我該如何檢查這個日期?檢查isDate返回無效的日期
回答
var checkDate = function (str){
var dates = str.split("To");
for(var i = 0; i < dates.length; i++) {
if (moment(dates[i]).isValid()) {
return true;
} else {
return false;
}
}
}
我可以在我的代碼的任何地方使用該功能。
我已根據您的需要更改了我的功能。你需要這樣做。請檢查。這裏你的代碼沒有機會檢查數組的第二部分。例如:認爲案件「2001年5月1日至8月15日20時」。它會返回true。但第二部分是無效的。檢查我的功能,如果可以,請將其標記爲已接受,因爲它可以幫助其他人。 –
您可以用'str.split('To').every(s => return moment(s).isValid());替換整個函數;'但是您應該提供字符串格式給解析器。 – RobG
var str = "1 May 2010 To 15 Aug 2016";
//First split string
var array = str.split("To");
//then check if both are dates
for(var i = 0; i < array.length; i++) {
if(isNaN(new Date(array[i]))) { //Checking date
alert(array[i]+ ' is not valid date');
}
}
我會使用js日期庫時刻js爲此。
var checkDate = function (str){
var dates = str.split("To");
var flag = true;
for(var i = 0; i < dates.length; i++) {
if (moment(dates[i]).isValid()) {
flag = false;
}
}
return flag;
}
我創建了一個小提琴爲
我有改變你的功能,我更喜歡在我的代碼中使用它。謝謝並看到我的答案。 –
感謝哥們,它節省了我的時間! –
請不要這樣做。閱讀並遵循[*文檔*](http://momentjs.com/docs/#/parsing/string/)和**始終**提供要解析的字符串格式。否則,你將把它留給解析器來猜測。它將返回返回有效日期的第一次嘗試,而不一定是「正確」的日期。 – RobG
解析字符串時,應始終提供解析字符串的格式。這可以非常簡單地使用ES5 每方法來完成:
var isValid = '1 May 2010 To 15 Aug 2016'.split(' To ').every(function(s) {
return moment(s,'D MMM YYYY').isValid();
});
console.log(isValid);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.js"></script>
如果箭頭功能都正常,則:
var isValid = '1 May 2010 To 15 Aug 2016'.split(' To ').every(s=>moment(s,'D MMM YYYY').isValid());
做這項工作。
- 1. 無效日期返回無效日期
- 2. SimpleDateFormat.parse返回無效日期
- 3. 日期strptime返回無效日期
- 4. SQL中的IsDate函數將無效日期評估爲有效
- 5. momentJS的TODATE()返回無效日期
- 6. current_date()+ 1返回無效日期
- 7. 爲什麼DateTime.now返回「無效日期」?
- 8. 矩形格式返回無效日期
- 9. 新的日期(毫秒)返回無效的日期
- 10. 下週末的日期時間在JavaScript返回無效日期
- 11. $過濾器(「日期」)返回「無效的日期」
- 12. 在FF中返回無效日期的日期(dateString)
- 13. 日期檢查總是返回false
- 14. jQuery UI Datepicker getDate在無效日期返回當天日期
- 15. 檢查並返回無效數據
- 16. 使用isDate返回true vb.net
- 17. 檢查日期時間總是返回日期在未來
- 18. 期待Time.zone.parse引發無效日期的錯誤,但返回零
- 19. javascript日期函數返回「日期{日期無效}」在Firefox瀏覽器
- 20. 日期格式返回無
- 21. ISDATE沒有驗證正確的日期
- 22. 的JavaScript的setDate()返回無效的日期
- 23. SimpleDateFormat返回具有無效日期字符串的奇怪日期
- 24. 在PHP中,如何檢查date_create是否返回有效的日期對象?
- 25. JS檢查有效的日期格式
- 26. Linux日期:無效日期
- 27. javascript日期()對象返回有效但不新的日期()
- 28. Mono中的DateTime.ToString返回無效日期(「00/734718/0001 01:41:38」)
- 29. Django Mysql數據庫返回無效的日期時間值
- 30. DateTime.Today.ToString( 「DD/MM/YYYY」)返回無效的日期時間價值
有兩個日期? 2010年5月1日和2016年8月15日。您應該拆分這些並檢查兩者。 – Evus
inspiration http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript – daremachine
有兩個日期,這些日期由你或(靜態)或從某些地方給出,如動態 –