美文网首页
Date使用

Date使用

作者: 贝灬小晖 | 来源:发表于2017-09-19 16:27 被阅读26次

    1.format
    // 对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");
    var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss");

    2.Date的浅拷贝 和 深拷贝

    昨天遇到了一个 关于data的浅拷贝问题

    var d = new Date(moreDay);// var d = moreDay d.addMonths(i); d.setDate(day); d.setHours(getRandomNum(1)); d.setMinutes(23); d.setSeconds(54); d.setMilliseconds(getRandomNum(3));

    当使用 var d = moreDay的时候
    d的改变会造成 moreDay的无限改变 这个时候要当moreDay不变的情况下 d进行改变
    就要对d 再次进行初始化

    var moreDay = "2018-10-03"
    var d = new Date(moreDay);
    console.log(d)
    2018-10-03T00:00:00.000Z

    设置时分秒 毫秒等

    3.转换为 20170418180801 类似 YYYYMMDDHHmmss 格式

    使用 moment 库
    var a = new Date()
    var time1 = moment(new Date()).format("YYYYMMDDhhmmss");

    相关文章

      网友评论

          本文标题:Date使用

          本文链接:https://www.haomeiwen.com/subject/alxgsxtx.html