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

原文地址:https://www.cnblogs.com/coding4/p/5572607.html