获得一个时间对象
var date = new Date();
//Date() 方法如果接受到一个时间戳作为参数,返回该时间戳的对象,否则返回当前时间
获得时间对象的时间戳
var timeStr = parseInt(Date.parse(new Date()));
或者
var timeStr = (new Date()).getTime();
通过时间戳 获得 时间对象
var date = new Date(timeStr);
一天的时间戳为:
60分 x 60秒 x 24小时 x 1000毫秒 = 86400 x 1000;
时间对象的一些常用方法
getDate() 获得当日的日期
getDay() 获得星期几
getHours():返回时间的小时部分。
getMinutes():返回时间的分钟部分。
getSeconds():返回时间的秒部分。
getMilliseconds():返回时间的毫秒部分。
getTime():返回自从1970年1月1日午夜以来的毫秒数。
setMonth(): 设置月份。
setDate(): 设置一个月的某一天。
setTime() :以毫秒设置 Date 对象。
setFullYear(year,mouth,day) : Date 对象中的年份(四位数字)
设置时间对象(调时间)
dateObject.setTime(millisec);
millisec: 要设置的日期和时间据 GMT 时间 1970 年 1 月 1 日午夜之间的毫秒数 ;
参数millisec可以为负值,用于表示1970年以前的日期。此方法没有返回值;主要用于设置时间对象;
设置时间为 3天前 :
function getDate(int) {
var date = new Date();
var timeStr = parseInt(Date.parse(date)) + 86400 * 1000 * int;
date.setTime(timeStr);//设置时间对象;
return date;
//注意写成 return date.setTime(timeStr) 是错的;会返回 timeStr;
}
var date = getDate(-3);
上面的方法也可以写成这样:
function getDate(int) {
var date = new Date();
var timeStr = parseInt(Date.parse(date)) + 86400 * 1000 * int;
return new Date(timeStr) // Date() 接受一个时间戳参数,返回设置时间后的时间对象;
}
var date = getDate(-3);
还可以写成这样(推荐):
function getDate(int) {
var date = new Date();
date.setDate(date.getDate()+int)
return date
}
var date = getDate(-3);
//注意:如果增加5天后进入另外一个月或一年,Date对象会自动处理的。
setFullYear 求 某个月有多少天
通过利用 setFullYear 中 如果day 设置为 0 回返回 上个月的最后一天 ;可以求得任意一个月有多少天
function getDaysNum(year,mouth) {
var date = new Date();
date.setFullYear(year,mouth,0);
var days = date.getDate();
return days;
}
getDaysNum(2017,2) //28
参考链接 http://www.w3school.com.cn/js...
格式化 时间对象
通常我们看到的时间格式并不是时间对象默认的格式(Mon Dec 25 2017 09:34:24 GMT+0800 (中国标准时间));
而是带中文 或者 横线分隔;因此我们需要写一个 Format 函数;直接看某大神的代码吧;
Date.prototype.Format = function (fmt) { //author: meizz
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"); //2017-12-26
var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss"); //2017-12-26 09:33:30
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。