JavaScript按照一定格式输出时间(年-月-日 时:分:秒.毫秒)

在前端开发中,经常会遇到需要实时显示时间的情况。于是封装了常用的用于刷新时间的方法,便于以后开发。

var myVar = setInterval(function(){ myTimer() }, 1);//每毫秒刷新一次时间
// currTime 为显示时间的元素的id
//当前输出方式为:xxxx-xx-xx hh:mm:ss.ms(年-月-日 时:分:秒.毫秒)
function myTimer() {
    var d = new Date();
    var ms = d.getMilliseconds();//获取当前时间的毫秒
    document.getElementById("currTime").innerHTML = 
        dateFormat("yyyy")+"-"+dateFormat("MM")+"-"+dateFormat("dd")+" "+
        dateFormat("h")+":"+dateFormat("m")+":"+dateFormat("s") + "." + ms;
    // console.log("----time="+document.getElementById("currTime").innerHTML);//打印时间
}
//给Date对象添加Format方法  
//fmt为要获取事件单位的格式,如需要获取四位数的年份,则为dateFormat("yyyy")
function dateFormat(fmt,_date) {
    var weekdays = {
        Chinese: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
        English: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
    };
    var _dd = typeof(_date)=="undefined"?new Date():_date;
    var o = {
        "y+": _dd.getFullYear(),//年
        "M+": _dd.getMonth() + 1,//月
        "d+": _dd.getDate(),//日
        "w": weekdays["Chinese"][_dd.getDay()],//星期
        "h+": _dd.getHours(),//时
        "m+": _dd.getMinutes(),//分
        "s+": _dd.getSeconds(),//秒
    };
    if (/(y+)/.test(fmt)) 
        fmt = fmt.replace(RegExp.$1, (_dd.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;
}

若有更好的方法,还望大家踊跃留言讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值