用JavaScript(js)對時間格式化

來源:互聯網
上載者:User

用js對時間格式化可以說是Web項目中不可或缺的一個Javascript類庫,它可以協助你快速的解決用戶端編程的許多問題,下面貼出一個用js格式化時間的方法。

Date.prototype.format = function(format)    {        var o = {        "M+" : this.getMonth()+1, //month        "d+" : this.getDate(),    //day        "h+" : this.getHours(),   //hour        "m+" : this.getMinutes(), //minute        "s+" : this.getSeconds(), //second        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter        "S" : this.getMilliseconds() //millisecond        }        if(/(y+)/.test(format)) format=format.replace(RegExp.$1,        (this.getFullYear()+"").substr(4 - RegExp.$1.length));        for(var k in o)if(new RegExp("("+ k +")").test(format))        format = format.replace(RegExp.$1,        RegExp.$1.length==1 ? o[k] :        ("00"+ o[k]).substr((""+ o[k]).length));        return format;    }

以上代碼必須先聲明,然後在使用。使用方法:

var d = new Date().format('yyyy-MM-dd');

另一種方法:

在Javascript之中,日期對象是Date,那麼如何將一個日期對象按照定製的格式進行輸出呢? 
  可以現告訴你,Date對象有有四個內建方法,用於輸出為字串格式,分別為: 
  1)toGMTString,將一個日期按照GMT格式顯示 
  2)toLocaleString,將一個日期按照本地作業系統格式顯示 
  3)toLocaleDateString,按照本地格式顯示一個日期對象的日期部分 
  4)toLocaleTimeString,按照本地格式顯示一個日期對象的時間部分 
  儘管Javascript的Date對象中內建提供了這些輸出為字串的方法,但是這些字串不是我們來控制格式的,因此如果我們需要我們自己定製的特殊格式,那麼又該怎麼辦呢? 
  不用著急,JsJava中提供了專用的類,專門對日期進行指定格式的字串輸出,你可以下載JsJava-2.0.zip,引入其中的src/jsjava/text/DateFormat.js,或者直接引入jslib/jsjava-2.0.js,範例代碼如下: 

var df=new SimpleDateFormat();//jsJava1.0需要使用DateFormat對象,不要弄錯就是了 df.applyPattern("yyyy-MM-dd HH:mm:ss"); var date=new Date(2007,3,30,10,59,51); var str=df.format(date); document.write(str);//顯示結果為:2007-04-30 10:59:51

通過上面的例子你可以看出,你需要做的就是指定pattern,那麼pattern中yyyy、MM等都表示什麼意思呢?如果你學習過Java的日期格式化,那麼你應該知道,那都是預留位置,這些預留位置都具有特殊的函數,例如y表示年,yyyy表示四個數位年份,例如1982,下面列舉一些pattern中支援的特殊字元及其含義(下面表格引自Java的官方文檔,做了適當修改):

G  Era designator  [url=]Text[/url]  AD  y  Year  [url=]Year[/url]  1996; 96  M  Month in year  [url=]Month[/url]  July; Jul; 07  w  Week in year  [url=]Number[/url]  27  W  Week in month  [url=]Number[/url]  2  D  Day in year  [url=]Number[/url]  189  d  Day in month  [url=]Number[/url]  10  F  Day of week in month  [url=]Number[/url]  2  E  Day in week  [url=]Text[/url]  Tuesday; Tue  a  Am/pm marker  [url=]Text[/url]  PM  H  Hour in day (0-23)  [url=]Number[/url]  0  k  Hour in day (1-24)  [url=]Number[/url]  24  K  Hour in am/pm (0-11)  [url=]Number[/url]  0  h  Hour in am/pm (1-12)  [url=]Number[/url]  12  m  Minute in hour  [url=]Number[/url]  30  s  Second in minute  [url=]Number[/url]  55  S  Millisecond  [url=]Number[/url]  978

原文連結:點擊開啟連結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.