㈠ momentjs獲取兩個日期時間之間的總天數
如何計算兩個日期之間相差的總天數?本篇文章將介紹兩種方法,一種使用 Moment.js 庫,另一種使用原生 javaScript。以日期 2022-01-02 和 2022-10-05 為例。
使用 Moment.js 計算,可以藉助其 `diff()` 方法。首先將日期轉換為 Moment.js 對象,然後使用 `diff()` 方法並傳遞參數 `'days'`,獲取天數差。示例代碼如下:
javascript
var startDate = moment('2022-01-02');
var endDate = moment('2022-10-05');
var daysDifference = startDate.diff(endDate, 'days');
console.log(daysDifference);
需要注意的是,`diff()` 方法返回的天數差為絕對值,不考慮日期順序。若需考慮順序,則需自行調整。
原生 JavaScript 方法同樣有效。通過將日期轉換為時間戳,然後計算時間戳差並除以一天的毫秒數(86400000),即可計算出天數。示例代碼如下:
javascript
var start = new Date('2022-01-02');
var end = new Date('2022-10-05');
var diff = Math.floor((end - start) / (1000 * 60 * 60 * 24));
console.log(diff);
請注意,此方法適用於標准 Gregorian 日歷,不適用於閏年或復雜日歷問題。輸入日期必須合法且格式正確。若需處理更多日歷問題,建議使用 Moment.js 等專業庫。
㈡ JS 時間相減得出天數
// 給日期類對象添加日期差方法,返回日期與diff參數日期的時間差,單位為天內
Date.prototype.diff = function(date){
return (this.getTime() - date.getTime())/(24 * 60 * 60 * 1000);
}
// 構造兩個日期,分別是系統容時間和2013/04/08 12:43:45
var now = new Date();
var date = new Date(/04/08 12:43:45');
// 調用日期差方法,求得參數日期與系統時間相差的天數
var diff = now.diff(date);
// 列印日期差
alert(diff);
㈢ 請教下各位,js計算時間差怎麼計算,計算出兩時間差得年、月、日
java寫的你參考下,看看能不能給你個啟發:
package app.test;
public class DataTest {
static int[] days = new int[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31};
public static void main(String[] orgs) {
DataTest datatest = new DataTest();
DateClass date1 = new DateClass();
DateClass date2 = new DateClass();
date1.year = 2009;
date1.month = 3;
date1.day = 28;
date2.year = 2008;
date2.month = 1;
date2.day = 28;
datatest.calculateMinute(date1, date2);
}
private long calculateMinute(DateClass date1, DateClass date2) {
long result = 0;
int temp=0;
if (date1.year - date2.year > 0) {
temp += (date1.year - date2.year) * 365;
for (int i = date2.year; i < date1.year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
temp++;
}
}
int daySpan1 = calculateDay(date1, days);
int daySpan2 = calculateDay(date2, days);
temp-=daySpan2;
temp+=daySpan1;
} else{
int daySpan1 = calculateDay(date1, days);
int daySpan2 = calculateDay(date2, days);
temp = daySpan1 - daySpan2;
}
result += temp * 24 * 60;
System.out.println(date1.year+"年"+date1.month+"月"+date1.day+"日"+"-----"+date2.year+"年"+date2.month+"月"+date2.day+"日"+"相差"+temp+"天");
System.out.println(date1.year+"年"+date1.month+"月"+date1.day+"日"+"-----"+date2.year+"年"+date2.month+"月"+date2.day+"日"+"相差"+result+"分鍾");
return result;
}
private int calculateDay(DateClass date, int[] days) {
int result = 0;
if ((date.year % 4 == 0 && date.year % 100 != 0)
|| date.year % 400 == 0) {
days[1] = 29;
}
for (int i = 0; i < date.month - 1; i++) {
result += days[i];
}
result += date.day;
return result;
}
}
class DateClass {
int year;
int month;
int day;
}