Date 对象用于处理日期和时间。
可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:
var myDate=new Date()
下面我们向大家介绍一下Date日期对象的一些应用实例。
1.日期格式化
将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd
可以为Date原型添加如下的方法:
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()+\"\").substr(4 - RegExp.$1.length));
}
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;
}
调用实例:
var time1 = new Date().format(\"yyyy-MM-dd hh:mm:ss\");
console.log(time1);
//运行结果:2017-09-28 21:08:59
也可以转换成 ”年月日”的格式
var time2 = new Date().format(\"yyyy-MM-dd\");
console.log(time2);
//运行结果:2017-09-28
2.比较两个日期的大小
一个开始日期,一个结束日期,怎样判断开始日期不能大于结束日期?
两种方法:
第一种:转换为date对象进行比较操作
< >
var st=\"2009-10-20 14:38:40\"
var et=\"2009-10-20 15:38:40\"
var stdt=new Date(st.replace(\"-\",\"/\"));
var etdt=new Date(et.replace(\"-\",\"/\"));
if(stdt>etdt) alert(\"开始时间必须小于结束时间\")
</ >
第二种:直接比较大小即可
< >
var st=\"2009-10-20 14:38:40\"
var et=\"2009-10-20 15:38:40\"
if(st>et) alert(\"开始时间必须小于结束时间\")
</ >
3.计算两个日期之间的时差
计算时间差的方式非常简单,如果是默认的Date()类型,直接相减就是相差的毫秒数。
var d1 = new Date(\'2016/03/28 10:17:22\');
var d2 = new Date(\'2016/03/28 11:17:22\');
console.log(parseInt(d2 - d1));//两个时间相差的毫秒数
console.log(parseInt(d2 - d1) / 1000);//两个时间相差的秒数
console.log(parseInt(d2 - d1) / 1000 / 60);//两个时间相差的分钟数
console.log(parseInt(d2 - d1) / 1000 / 60);//两个时间相差的小时数
如果,拿到的不是日期类型,而是"2016-03-28 10:27:00"这种的字符串格式呢,那么就需要先将字符串转换为日期类型。
var t1 = \"2016-03-28 10:27:00\";
var d1 = t1.replace(/\\-/g, \"/\");
var date1 = new Date(d1);
以上得到的date1就是一个日期类型了。就可以计算了,只要再简单封装一下,就能够组合出任意的事件类型转换函数。如:输入字符串得到相差秒数:
<!doctype html>
<html>
<head>
< >jQuery判断元素是隐藏的还是可见的</ >
</head>
<body>
< >
function GetDateDiff(startTime, endTime, diffType) {
//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
startTime = startTime.replace(/\\-/g, \"/\");
endTime = endTime.replace(/\\-/g, \"/\");
//将计算间隔类性字符转换为小写
diffType = diffType.toLowerCase();
var sTime =new Date(startTime); //开始时间
var eTime =new Date(endTime); //结束时间
//作为除数的数字
var timeType =1;
switch (diffType) {
case\"second\":
timeType =1000;
break;
case\"minute\":
timeType =1000*60;
break;
case\"hour\":
timeType =1000*3600;
break;
case\"day\":
timeType =1000*3600*24;
break;
default:
break;
}
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(timeType));
}
alert(GetDateDiff(\"2016-03-28 10:30:22\",\"2016-03-28 10:38:22\",\"minute\"));
</ >
</body>
</html>
4. 时间戳和日期字符串相互转换
获取当前时间戳(以s为单位):
var timestamp = Date.parse(new Date());
timestamp = timestamp / 1000;
//当前时间戳为:1403149534
console.log(\"当前时间戳为:\" + timestamp);
获取某个时间格式的时间戳:
var stringTime = \"2014-07-10 10:21:12\";
var timestamp2 = Date.parse(new Date(stringTime));
timestamp2 = timestamp2 / 1000;
//2014-07-10 10:21:12的时间戳为:1404958872
console.log(stringTime + \"的时间戳为:\" + timestamp2);
将当前时间戳转化时间格式字符串:
var timestamp3 = 1403058804;
var newDate = new Date();
newDate.setTime(timestamp3 * 1000);
// Wed Jun 18 2014
console.log(newDate.toDateString());
// Wed, 18 Jun 2014 02:33:24 GMT
console.log(newDate.toGMTString());
// 2014-06-18T02:33:24.000Z
console.log(newDate.toISOString());
// 2014-06-18T02:33:24.000Z
console.log(newDate.toJSON());
// 2014年6月18日
console.log(newDate.toLocaleDateString());
// 2014年6月18日 上午10:33:24
console.log(newDate.toLocaleString());
// 上午10:33:24
console.log(newDate.toLocaleTimeString());
// Wed Jun 18 2014 10:33:24 GMT+0800 (中国标准时间)
console.log(newDate.toString());
// 10:33:24 GMT+0800 (中国标准时间)
console.log(newDate.toTimeString());
// Wed, 18 Jun 2014 02:33:24 GMT
console.log(newDate.toUTCString()); 继续阅读与本文标签相同的文章
-
健乐教学机器人可开展的教学实训内容
2026-05-14栏目: 教程
-
5G套餐曝光遭“吐槽”,iphone11受追捧,导致苹果11销量比较高
2026-05-14栏目: 教程
-
为什么修电脑的叫自己不要杀毒和清理垃圾?
2026-05-14栏目: 教程
-
当水乡建筑遇上机器人,成就乌镇又一网红景点
2026-05-14栏目: 教程
-
惊险!手刹失灵,郴州一货车开启“无人驾驶”模式……
2026-05-14栏目: 教程
