JS Date时间
1 获得时间
new Date() 缺省参数时,返回的是当前时间
格式 | 结果 |
---|---|
new Date() | Thu Feb 03 2022 22:36:39 GMT+0800 (中国标准时间) |
new Date(1643899334112) | Thu Feb 03 2022 22:42:14 GMT+0800 (中国标准时间) |
new Date('1/1/2020') | Wed Jan 01 2020 00:00:00 GMT+0800 (中国标准时间) |
2 时间戳
从1970年1月1日午夜至该日期为止经过的毫秒数 => 1643899334112
3 获得时间戳
格式 | 结果 |
---|---|
Date.parse( new Date() ) | 1280977330000 把毫秒改成000显示 |
(new Date()).valueOf() | 1280977330748 获取了当前毫秒 |
new Date().getTime() | 1280977330748 获取了当前毫秒 |
4 格式化
对 Thu Feb 03 2022 22:36:39 GMT+0800 (中国标准时间) 格式化
放一个自己经常用的代码
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, // 月份
"d+": this.getDate(), // 日
"h+": this.getHours(), // 小时
"m+": this.getMinutes(), // 分
"s+": this.getSeconds(), // 秒
"q+": Math.floor((this.getMonth() + 3) / 3), // 季度
"S": this.getMilliseconds() // 毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + ""));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
new Date(1542274800000).Format('yy-MM-dd hh:mm:ss'); //"2018-11-15 17:40:00"
5 Date的一些方法
方法 | 解释 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6),0是周日,1~6周一到周六 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
6 正则
7 时间计算
function(startTime, endTime) {
var stime = new Date(startTime).getTime();
var etime = new Date(endTime).getTime();
// 两个时间戳相差的毫秒数
var usedTime = etime - stime;
// 计算相差的天数
var days = Math.floor(usedTime / (24 * 3600 * 1000));
// 计算天数后剩余的毫秒数
var leave1 = usedTime % (24 * 3600 * 1000);
// 计算出小时数
var hours = Math.floor(leave1 / (3600 * 1000));
// 计算小时数后剩余的毫秒数
var leave2 = leave1 % (3600 * 1000);
// 计算相差分钟数
var minutes = Math.floor(leave2 / (60 * 1000));
var time = days + "天" + hours + "时" + minutes + "分";
return time;
}