網頁設計程式語法JavaScriptJavaScript 計算兩日期時間天數、取得兩時間差異

JavaScript 計算兩日期時間天數、取得兩時間差異


TimeSpan 計算兩日期時間天數

var DateDiff = function (sDate1, sDate2) { // sDate1 和 sDate2 是 2016-06-18 格式
  var aDate, oDate1, oDate2, iDays
  aDate = sDate1.split("/")
  oDate1 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0]) // 轉換為 06/18/2016 格式
  aDate = sDate2.split("/")
  oDate2 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0])
  iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) // 把相差的毫秒數轉換為天數
  return iDays;
};
var GetDateDiff = DateDiff("2016/4/28","2016/5/2"); // 轉換為天數 : 4 (四月小)
var GetDateDiff = DateDiff("2016/5/28","2016/6/2"); // 轉換為天數 : 5 (五月大)

取得兩時間差異

程式碼天數有誤修正中



時間增加一小時

var nowTime = new Date();
var nowTimeString = nowTime.toGMTString(); // 世界時間標準設定的時間
var addTime = nowTime.getTime();
addTime += 3600 * 1000; // 一小時 = 60(分鐘) x 60(秒鐘) x 1000(毫秒)
nowTime.setTime(addTime);
var addTimeString = nowTime.toGMTString();
nowTimeString = Tue, 27 Feb 2017 16:21:19 GMT
addTimeString = Tue, 27 Feb 2017 17:21:19 GMT

使用 getDate(), getMonth() 增加天或月

setMonth() 設置 Date 對象中月份 (0 ~ 11)

var d = new Date(2016, 03, 15);
d.setDate(d.getDate() + 2);
d = Sun Apr 17 2016 00:00:00 GMT+0800 (台北標準時間)

增加兩天 03 = April/4月、結果是417

var d = new Date(2016, 3-1, 15);
d.setDate(d.getDate() + 2);
d = Thu Mar 17 2016 00:00:00 GMT+0800 (台北標準時間)

增加兩天 3-1 = March/3月、結果是317


var d = new Date(2016, 6-1, 15);
d.setMonth(d.getMonth() + 2);
d = Mon Aug 15 2016 00:00:00 GMT+0800 (台北標準時間)

增加兩個月 6-1 = June/6月、結果是815




當月第一天、當月最後一天

var startDate = new Date(); // 取當日
startDate.setDate(1); // 設定日期為第一天
var endDate = new Date(); // 將月份移至下個月份
endDate.setMonth(endDate.getMonth() + 1);

設定為下個月份的第一天

endDate.setDate(1);

將日期 -1 為當月的最後一天

endDate.setDate(endDate.getDate() - 1);



本周第一天

function weekFirstDay() {
  var d = new Date();
  var firstDate = new Date(d - (d.getDay() - 1) * 86400000);
  console.log(firstDate);
}

本周最後一天

function weekLastDay() {
  var d = new Date();
  var firstDate = new Date(d - (d.getDay() - 1) * 86400000);
  var lastDate = new Date((firstDate / 1000 + 6 * 86400) * 1000);
  console.log(lastDate);
}

本月第一天

function monthFirstDay() {
  var d = new Date();
  var firstDate = new Date(d.getFullYear(), d.getMonth(), 1);
  console.log(firstDate);
}

本月最後一天

function monthLastDay() {
  var d = new Date();
  var firstDate = new Date(d.getFullYear(), d.getMonth() + 1, 1);
  var lastDate = new Date(firstDate - 86400000);
  console.log(lastDate);
}

JavaScript Milliseconds 轉換為 Date

var months = "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月".split(",");
var weekdays = "星期日,星期一,星期二,星期三,星期四,星期五,星期六".split(",");
var num = 1507161600000;
var dd = new Date(num);
dd.toString();
dd.getMonth();
dd.toString() = Thu Oct 05 2017 08:00:00 GMT+0800 (台北標準時間) // 轉換日期
dd.getMonth() = 9 // 月份的值
months[dd.getMonth()] = 十月 // 月份由 months 陣列轉換成中文
weekdays[dd.getDay()] = 星期四

Modification in

回應文章

請先登入