资讯专栏INFORMATION COLUMN

Date 对象

kgbook / 3230人阅读

摘要:构造函数参数无参数默认当天的日期一个用于表现日期的字符串分开传递的日月时间等值一个值更精确的是向构造器传递一些具体的数值年份月份从月月日期从到时数从到分钟从到秒钟从到毫秒数从到需要注意的是,如果所传递的值超过了被允许的范围,对象会自行启动溢

github

Date() 构造函数

参数:

无参数(默认当天的日期)

一个用于表现日期的字符串

分开传递的日、月、时间等值

一个 timestamp 值

更精确的是向 Date() 构造器传递一些具体的数值:

年份

月份 从 0 (1月)11(12月)

日期 从 1 到 31

时数 从 1 到23

分钟 从 0 到 59

秒钟 从 0 到 59

毫秒数 从 0 到 999

需要注意的是,如果所传递的值超过了被允许的范围, Date 对象会自行启动 溢出式 前进处理。

new Date(2012, 11, 32); // Tue Jan 01 2013 00:00:00 GMT-0800 (PST)
Date 对象方法 实例方法
// 详细找下边
get*(), set*()
"静态方法"
Date.parse("Jan 11, 2018"); // 1515657600000

Date.UTC(2018, 0, 11); // 1515628800000 得到的是格林尼治时间

Date.now() === new Date().getTime(); // true
Date 的扩展 format 1
    // 对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;   
    }  

调用方法:

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 "ffffd": return ["Sun","Mon","Tue","Wed","Thr","Fri","Sat"][d.getDay()];        
       
            case "ffffdd":    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);        
       
        }        
       
    });        
       
};   
Reference

JavaScript 面向对象编程指南(第2版)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88860.html

相关文章

  • 时间格式化及操作(js原生date对象

    摘要:设置对象中月份。设置对象中的年份四位数字。中国标准时间把对象的日期部分转换为字符串。例例中国标准时间返回年月日午夜到指定日期字符串的毫秒数。 # Date new Date(); //获取当前时间:Tue Jul 31 2018 18:21:22 GMT+0800 (中国标准时间) Date.now(); ...

    马永翠 评论0 收藏0
  • JS对象 - Date属性方法汇总

    摘要:最初计算机操作系统是位,而时间也是用位表示,能表示的最长时间范围为年,超出时间范围会发生时间回归的现象。方法通常由在后台自动调用,并不显式地出现在代码中返回的毫秒表示。返回值和方法返回的值相等 属性名 描述 prototype 为对象添加属性、方法 constructor 返回对象的引用 方法名 返回值 Date() 当前日期和时间 getDate()...

    ityouknow 评论0 收藏0
  • JavaScript中Date学习记录_013

    摘要:中对象学习记录实例用来处理日期和时间。的对象提供了数个时间的方法,也相应提供了当地时间的方法。而当地时间则是指执行的客户端电脑所设置的时间。构造函数中国标准时间代表自年月日世界标准时间起经过的毫秒数。中国标准时间表示日期的字符串值。 JavaScript中Date对象学习记录 Date 实例用来处理日期和时间。Date对象基于1970年1月1日(世界标准时间)起的毫秒数。 JavaSc...

    hersion 评论0 收藏0
  • Javascript系列之Date对象

    摘要:返回对象的月份值。设置对象的秒数值。日期转字符串中国标准时间下午返回客户端当地时间格式中国标准时间下午其他方法返回的毫秒表示返回对象与之间的毫秒值北京时间的时区为东区,起点时间实际为时间实例可互相比较,实际比较的则是毫秒数 创建Date对象 Date 对象会自动把当前日期和时间保存为其初始值。 var myDate = new Date(); //返回当前时间字符串 // Sun J...

    maybe_009 评论0 收藏0
  • JS基础篇--日期Date详解与实例扩展

    摘要:实际上,如果直接将表示日期的字符串传递给构造函数,也会在后台调用方法,例如下面的代码跟前面的是等价的。构造函数构造函数会模仿但有一点不同的是,日期和时间都是基于本地时区而非来创建。兼容性问题啊其原因就是非标准日期格式。 一:Date类型介绍 要创建一个日期对象,使用new操作符和Date构造函数即可: var now = new Date(); Date.parse()方法 其中Da...

    Apollo 评论0 收藏0
  • JavaScript 时间与日期处理实战:你肯定被坑过

    摘要:本文时间与日期处理实战你肯定被坑过从属于笔者的前端入门与最佳实践中入门与最佳实践系列文章。然而由于地球的不规则自转,导致时间有误差,因此目前已不被当作标准时间使用。而在航空上,所有使用的时间划一规定是协调世界时。 本部分的知识图谱请参考编程语言知识图谱-时间与日期。showImg(https://segmentfault.com/img/remote/1460000007581725...

    ninefive 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<