JavaScript Date() 日期与时间
JavaScript 没有日期资料型态,但有提供 Date() 物件,使用日期物件、可以取得及设置日期时间的方法。日期物件有多种的方法来设定及取得。使用时有可能会因为浏览器或作业系统之不同,而显示出不同的结果。在计算「以前」的日期时注意浏览器差异有出现例如台北夏令时间、日光节约时间之问题。
JavaScript 取得某月天数
日期中的日固定设为 0。例如 2014 的 2月份天数为。days 即是当月天数
let days = new Date(2014,2,0).getDate();
JavaScript 毫秒转换成日期:Milliseconds to Date in JavaScript
let num = 1305856000000;
let dd = new Date(num);
console.log(dd.toString() + "<br />");
let months = "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月".split(",");
let weekdays = "星期日,星期一,星期二,星期三,星期四,星期五,星期六".split(",");
console.log( months[dd.getMonth()] );
console.log( weekdays[dd.getDay()] );
计算两个时间差(天数) Difference between dates in JavaScript
let dt1 = new Date(2015, 8, 1);
let dt2 = new Date(2015, 8, 15);
console.log((dt2 - dt1) / (1000 * 60 * 60 * 24)); // 将毫秒计算成天数 86400000
产生日期与时间
建立日期物件实体,初始值设为当下的日期与本地时间。
new Date()
用于产生一个日期和时间、如果没有指定参数,物件预设值为产生物件的日期与本地时间。而本地时间是指执行 JavaScript new Date() 的用户电脑时间。
let dt = new Date();
console.log(dt);
let dt = (+new Date()); // Date.now() milliseconds 微秒数
console.log(dt);
new Date(日期时间字串)
指定参数,日期时间字串则传回参数的日期。
console.log(new Date("2015/6/30 10:30:12"));
new Date(年, 月, 日 [, 时, 分, 秒, 毫秒])
时, 分, 秒, 毫秒为选择性的参数,没有设定时以零取代,与上例比较月份是由零开始所以是 5。如果参数值超过预定值时,会取超过值并进位上一位时间值。
console.log(new Date(2015, 5, 30, 10, 30, 12));
console.log(new Date(1950, 5, 1));
1950 台北夏令时间,新版浏览器显示出的会有差异。(一小时)
console.log(new Date(1975, 5, 1));
1950 台北夏令时间,新版浏览器显示出的会有差异。(一小时)
日期 get 方法
将当时的日期指定到 dt 物件变数。
let dt = new Date();
getYear() 取得年份
console.log(dt.getYear()); // 取得年份是错误的
getFullYear() 取得年份
console.log(dt.getFullYear()); // 採用四位数西歷年才正确
getMonth() 取得月份、从 0 开始算起
取得月份 : 一月 = 0, 二月 = 1, 三月 = 2, 四月 = 3, 五月 = 4, 六月 = 5, 七月 = 6...十月 = 9, 十一月 = 10, 十二月 = 11
console.log(dt.getMonth());
建立一个 Array 阵列物件、用来存放相对映于索引编号的 month 月份名称。
let dt = new Date();
let month = new Array(12);
month[0] = "一月";
month[1] = "二月";
month[2] = "三月";
month[3] = "四月";
month[4] = "五月";
month[5] = "六月";
month[6] = "七月";
month[7] = "八月";
month[8] = "九月";
month[9] = "十月";
month[10] = "十一月";
month[11] = "十二月";
console.log("本月份 = " + month[dt.getMonth()]);
getDate() 取得日(天) 1~31
console.log(dt.getDate());
getDay() 取得星期
星期日 = 0, 星期一 = 1, 星期二 = 2, 星期三 = 3, 星期四 = 4,星期五 = 5, 星期六 = 6
console.log(dt.getDay());
时间 get 方法
getHours() 取得时数 0~23 台北标准时间 +8
console.log(dt.getHours());
getUTCHours() 取得(国际标准时间)时数 0~23
console.log(dt.getUTCHours()); // UTC 表示 Coordinated Universal Time 国际标准时间
getMinutes() 取得分钟 0~59
console.log(dt.getMinutes());
getSeconds() 取得秒数 0~59
console.log(dt.getSeconds());
getMilliseconds() 取得毫秒数 0~999
console.log(dt.getMilliseconds());
getTime() 取得时间 (由 1970年1月1日零时零分计起到目前时间) 单位:(毫秒)
console.log(dt.getTime());
getTimezoneOffset() 取得 GMT 减去本地时间的值 单位:(分钟)
console.log(dt.getTimezoneOffset()); // 数值会受日光节约时间之影响
日期 set 方法
setFullYear() 设置年份 (四位数字)
dt.setFullYear(2008)
console.log(dt.getFullYear());
2008
setMonth() 设置月份 0~11
dt.setMonth(5)
console.log(dt.getMonth());
5
setDate() 设置日(天) 1~31
dt.setDate(3)
console.log(dt.getDate());
3
let dt = new Date();
dt.setMonth(5); // 5 等于六月
dt.setDate(31);
因为六月没有31日,所以返回的会是7月1日。
时间 set 方法
setHours() 设置时数 0~23
dt.setHours(10);
console.log(dt.getHours());
10
setMinutes() 设置分钟 0~59
dt.setMinutes(30);
console.log(dt.getMinutes());
30
setSeconds() 设置秒数 0~59
dt.setSeconds(12);
console.log(dt.getSeconds());
12
setMilliseconds() 设置毫秒数 0~999
dt.setMilliseconds(280);
console.log(dt.getMilliseconds());
280