javascript 日期对象(date)详解

Date 对象

Date 对象用于处理日期和时间。

创建 Date 对象的语法:

var myDate=new Date();

注释:Date 对象会自动把当前日期和时间保存为其初始值。

1、date初始化设置

new Date("m  d,y h:m:s");
new  Date("m d,y");
new  Date(y,m,d,h,m,s);
new Date(y,m,d);
new Date(ms);
例子:
new Date("January 12,2006 22:19:35");
new Date("January 12,2006");
new Date(2006,0,12,22,19,35);
new Date(2006,0,12);
new Date(1137075575000);

2、date对象方法(w3c)

方法                    描述
Date()                 返回当日的日期和时间。
getDate()              从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()               从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth()             从 Date 对象返回月份 (0 ~ 11)。
getFullYear()          从 Date 对象以四位数字返回年份。
getYear()              请使用 getFullYear() 方法代替。
getHours()             返回 Date 对象的小时 (0 ~ 23)。
getMinutes()           返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()           返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()      返回 Date 对象的毫秒(0 ~ 999)。
getTime()              返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()    返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()           根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()            根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth()          根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear()       根据世界时从 Date 对象返回四位数的年份。
getUTCHours()          根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes()        根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds()        根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds()   根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse()                返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()              设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()             设置 Date 对象中月份 (0 ~ 11)。
setFullYear()          设置 Date 对象中的年份(四位数字)。
setYear()              请使用 setFullYear() 方法代替。
setHours()             设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()           设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()           设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()      设置 Date 对象中的毫秒 (0 ~ 999)。
setTime()              以毫秒设置 Date 对象。
setUTCDate()           根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth()          根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear()       根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()          根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes()        根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds()        根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds()   根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource()             返回该对象的源代码。
toString()             把 Date 对象转换为字符串。
toTimeString()         把 Date 对象的时间部分转换为字符串。
toDateString()         把 Date 对象的日期部分转换为字符串。
toGMTString()          请使用 toUTCString() 方法代替。
toUTCString()          根据世界时,把 Date 对象转换为字符串。
toLocaleString()       根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString()   根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString()   根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC()                  根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()              返回 Date 对象的原始值。

3、日期格式化

// 对Date的扩展,将 Date 转化为指定格式的String   
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,   
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)   
// 例子:   
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423   
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18   
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;   
}  
调用方法:
[javascript] view plaincopy
var time1 = new Date().format("yyyy-MM-dd HH:mm:ss");     
var time2 = new Date().format("yyyy-MM-dd");  


方式二:
/** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 */ Date.prototype.pattern=function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), // "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时 "H+" : this.getHours(), //小时 "m+" : this.getMinutes(), // "s+" : this.getSeconds(), // "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; var week = { "0" : "/u65e5", "1" : "/u4e00", "2" : "/u4e8c", "3" : "/u4e09", "4" : "/u56db", "5" : "/u4e94", "6" : "/u516d" }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } if(/(E+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]); } 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 date = new Date(); window.alert(date.pattern("yyyy-MM-dd hh:mm:ss")); 方式三: Date.prototype.format = function(mask) { var d = this; var zeroize = function (value, length) { if (!length) length = 2; value = String(value); for (var i = 0, zeros = ''; i < (length - value.length); i++) { zeros += '0'; } return zeros + value; }; return mask.replace(/"[^"]*"|'[^']*'|/b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])/1?|[lLZ])/b/g, function($0) { switch($0) { case 'd': return d.getDate(); case 'dd': return zeroize(d.getDate()); case 'ddd': return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()]; case 'dddd': return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()]; case 'M': return d.getMonth() + 1; case 'MM': return zeroize(d.getMonth() + 1); case 'MMM': return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()]; case 'MMMM': return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()]; case 'yy': return String(d.getFullYear()).substr(2); case 'yyyy': return d.getFullYear(); case 'h': return d.getHours() % 12 || 12; case 'hh': return zeroize(d.getHours() % 12 || 12); case 'H': return d.getHours(); case 'HH': return zeroize(d.getHours()); case 'm': return d.getMinutes(); case 'mm': return zeroize(d.getMinutes()); case 's': return d.getSeconds(); case 'ss': return zeroize(d.getSeconds()); case 'l': return zeroize(d.getMilliseconds(), 3); case 'L': var m = d.getMilliseconds(); if (m > 99) m = Math.round(m / 10); return zeroize(m); case 'tt': return d.getHours() < 12 ? 'am' : 'pm'; case 'TT': return d.getHours() < 12 ? 'AM' : 'PM'; case 'Z': return d.toUTCString().match(/[A-Z]+$/); // Return quoted strings with the surrounding quotes removed default: return $0.substr(1, $0.length - 2); } }); };

 

posted @ 2015-05-18 13:47  史洲宇  阅读(563)  评论(0编辑  收藏  举报