0
目前,下面的代碼僅在一個月或更短的時間內獲得與「1個月」相同的任何日期差異。我想要做的是如果差異小於一個月,輸出多少天 - 「XX天」。然後如果不到一天,輸出多少個小時 - 「XX小時」。需要擴展DateDiff以獲取更多詳細信息
任何幫助,將不勝感激。謝謝。
function getDateDiff(timestamp) {
if (null == timestamp || timestamp == "" || timestamp == "undefined") return "?";
var splitDate = ((timestamp.toString().split('T'))[0]).split('-');
var d1 = new Date();
var d1Y = d1.getFullYear();
var d2Y = parseInt(splitDate[0], 10);
var d1M = d1.getMonth();
var d2M = parseInt(splitDate[1], 10);
var diffInMonths = (d1M + 12 * d1Y) - (d2M + 12 * d2Y);
if (diffInMonths <= 1) return "1 month";
else if (diffInMonths < 12) return diffInMonths + " months";
var diffInYears = Math.floor(diffInMonths/12);
if (diffInYears <= 1) return "1 year";
else if (diffInYears < 12) return diffInYears + " years"
}
不幸的是我在這方面缺乏知識的使用,我不能像這樣一個完全不同的編碼路線走。這會導致我不得不更改其他代碼區域,我不知道從哪裏開始。我目前只修改原始代碼。 – BZCS
好的。但是,除非你只是將一個時間戳傳遞給一個函數,否則應該只是在函數內部替換內容。但是我會回覆你使用的相同功能,但有時可能會在某些時候... –
像'24 * 60 * 60'這樣的東西很危險:因爲夏令時有些日子可能會持續23小時,其他的25日。在這種情況下,我不相信你會需要100%的準確性,但請記住! – Qualcuno