• js日期的格式化


    我们看控制台打印的关于Date这个类

    我们这里可以看到内置方法没有类似format这种方法,所以需要自己定义。

    内置的方法:

    var myDate = new Date();
    myDate.getYear();        //获取当前年份(2位)
    myDate.getFullYear();    //获取完整的年份(4位,1970-????)
    myDate.getMonth();       //获取当前月份(0-11,0代表1月)
    myDate.getDate();        //获取当前日(1-31)
    myDate.getDay();         //获取当前星期X(0-6,0代表星期天)
    myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)
    myDate.getHours();       //获取当前小时数(0-23)
    myDate.getMinutes();     //获取当前分钟数(0-59)
    myDate.getSeconds();     //获取当前秒数(0-59)
    myDate.getMilliseconds();    //获取当前毫秒数(0-999)
    myDate.toLocaleDateString();     //获取当前日期
    var mytime=myDate.toLocaleTimeString();     //获取当前时间
    myDate.toLocaleString( );        //获取日期与时间

    利用这个内置的方法然后,拼成格式化的方法

    看下这个博客:http://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html

    http://www.cnblogs.com/qinpengming/archive/2012/12/03/2800002.html

    推荐的一个简单的方法:

    // 对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"); //这里边没有星期的,简单的使用
    new Date().Format("yyyy/MM/dd hh:mm:ss")//这样子也行

    更容易记忆些:

    //时间的格式化
            Date.prototype.format = function(fmt){
                var  o = {
                    'M+':new Date().getMonth()+1,
                    'd+':new Date().getDate(),
                    'h+':new Date().getHours(),
                    'm+':new Date().getMinutes(),
                    's+':new Date().getSeconds()
                }
                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,o[k]<10?("0"+o[k]):o[k]
                        );
                    }
                }
                return fmt;
            }
            console.log(new Date().format('yy-MM-dd hh-mm-ss'));
    View Code

    计算时间差:

    http://blog.csdn.net/niu_hao/article/details/8256745

  • 相关阅读:
    450. 删除二叉搜索树中的节点
    958. 二叉树的完全性检验
    5211. 概率最大的路径(197)
    5447. 石子游戏 IV
    174. 地下城游戏
    Codeforces Round #622 (Div. 2).C2
    Codeforces Round #624 (Div. 3) F. Moving Points 题解
    竞赛头
    离散化
    线段树
  • 原文地址:https://www.cnblogs.com/coding4/p/5572607.html
Copyright © 2020-2023  润新知