簡體   English   中英

用JavaScript處理日期的更好方法

[英]Better way to deal with date in javascript

我有一個表單,用戶必須輸入一個開始日期和一個結束日期。 之后,我必須計算該日期的結果以在UI上具有狀態:

  • 如果日期是過去的日期,則狀態為“完成”
  • 如果日期是將來的日期,則狀態為“待完成”
  • 如果今天在兩個日期之間,則狀態為“進行中”

如何輕松計算? 我的日期格式為:04/21/2015。

您是否要求我通過更改格式(04/21/2015 => 20150421)比較日期並進行比較? 還是使用JS的Date? 還是其他?

提前致謝

獲得兩個日期對象,如下所示:

// parse a date in mm/dd/yyyy format
function parseDate(input) {
  var parts = input.split('/');
  // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
  return new Date(parts[2], parts[0]-1, parts[1]); // Note: months are 0-based
}

然后使用常規運算符進行比較< > ==

您可以為輸入日期創建一個日期對象,為當前日期創建另一個日期對象,然后只需對其進行比較。

檢查dateObject以便提供正確的日期字符串格式:

var inpDate = $('input').val();
var d = new Date(inpDate);
var today = new Date();

if (inpDate > today) {
   return "TO BE DONE";
} else .... 

您嘗試過http://momentjs.com/嗎? 真正易於使用,轉換和格式化可以節省您添加更多JavaScript代碼的時間,但是可以通過添加庫來抵消。

function getStatusByDate(startDate, endDate) {
    var currentTime = new Date().getTime();
    var startTime = new Date(startDate).getTime();
    var endTime = new Date(endDate).getTime();
    console.log(startTime, endTime);
    if (startTime < endTime && endTime < currentTime) {
        return ('DONE');
    } else if (startTime < endTime && endTime > currentTime && startTime < currentTime) {
        return ('IN PROGRESS');
    } else if (startTime < endTime && startTime > currentTime) {
        return ('TO BE DONE');
    } else {
        return ('INVALID INPUT');
    }
}

暫無
暫無

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

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