zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/coding4/p/5572607.html
Copyright © 2011-2022 走看看