首頁 web前端 js教程 JavaScript如何格式化時間的方法

JavaScript如何格式化時間的方法

Mar 17, 2018 pm 01:38 PM
javascript 時間 格式化

本文为大家分享了javascript时间格式化的方法,分享给大家供大家参考,可以说是Web项目中不可或缺的一个Javascript类库,它可以帮助你快速的解决客户端编程的许多问题,下面贴出一个用js格式化时间的方法。

<span style="font-family: 微软雅黑, "Microsoft YaHei";">Date.prototype.format =function(format)<br/>{<br/>var o = {<br/>"M+" : this.getMonth()+1, //month<br/>"d+" : this.getDate(), //day<br/>"h+" : this.getHours(), //hour<br/>"m+" : this.getMinutes(), //minute<br/>"s+" : this.getSeconds(), //second<br/>"q+" : Math.floor((this.getMonth()+3)/3), //quarter<br/>"S" : this.getMilliseconds() //millisecond<br/>}<br/>if(/(y+)/.test(format)) format=format.replace(RegExp.$1,<br/>(this.getFullYear()+"").substr(4- RegExp.$1.length));<br/>for(var k in o)if(new RegExp("("+ k +")").test(format))<br/>format = format.replace(RegExp.$1,<br/>RegExp.$1.length==1? o[k] :<br/>("00"+ o[k]).substr((""+ o[k]).length));<br/>return format;<br/>}<br/></span>
登入後複製

1


<span style="font-family: 微软雅黑, "Microsoft YaHei";">var</span> <span style="font-family: 微软雅黑, "Microsoft YaHei";">d =</span><span style="font-family: 微软雅黑, "Microsoft YaHei";">new</span> <span style="font-family: 微软雅黑, "Microsoft YaHei";">Date().format(</span><span style="font-family: 微软雅黑, "Microsoft YaHei";">&#39;yyyy-MM-dd&#39;</span><span style="font-family: 微软雅黑, "Microsoft YaHei";">);</span>

以上代码必须先声明,然后在使用。使用方法:

另一种方法:

在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,样例代码如下:

<span style="font-family: 微软雅黑, "Microsoft YaHei";">var df=new SimpleDateFormat();//jsJava1.0需要使用DateFormat对象,不要弄错就是了<br/>df.applyPattern("yyyy-MM-dd HH:mm:ss");<br/>var date=new Date(2015,12,18,10,59,51);<br/>var str=df.format(date);<br/>document.write(str);//显示结果为:2015-12-18 10:59:51<br/></span>
登入後複製
<span style="font-family: 微软雅黑, "Microsoft YaHei";">G Era designator [url=]Text[/url] AD<br/>y Year [url=]Year[/url] 1996; 96<br/>M Month in year [url=]Month[/url] July; Jul; 07<br/>w Week in year [url=]Number[/url] 27<br/>W Week in month [url=]Number[/url] 2<br/>D Day in year [url=]Number[/url] 189<br/>d Day in month [url=]Number[/url] 10<br/>F Day of week in month [url=]Number[/url] 2<br/>E Day in week [url=]Text[/url] Tuesday; Tue<br/>a Am/pm marker [url=]Text[/url] PM<br/>H Hour in day (0-23) [url=]Number[/url] 0<br/>k Hour in day (1-24) [url=]Number[/url] 24<br/>K Hour in am/pm (0-11) [url=]Number[/url] 0<br/>h Hour in am/pm (1-12) [url=]Number[/url] 12<br/>m Minute in hour [url=]Number[/url] 30<br/>s Second in minute [url=]Number[/url] 55<br/>S Millisecond [url=]Number[/url] 978<br/></span>
登入後複製

通过上面的例子你可以看出,你需要做的就是指定pattern,那么pattern中yyyy、MM等都表示什么意思呢?如果你学习过Java的日期格式化,那么你应该知道,那都是占位符,这些占位符都具有特殊的函数,例如y表示年,yyyy表示四个数字的年份,例如1982,下面列举一些pattern中支持的特殊字符及其含义(下面表格引自Java的官方文档,做了适当修改):

还有三种方法也分享给大家:

第一种方法:

<span style="font-family: 微软雅黑, "Microsoft YaHei";">// 对Date的扩展,将 Date 转化为指定格式的String <br/>// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, <br/>// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) <br/>// 例子: <br/>// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 <br/>// (new Date()).Format("yyyy-M-d h:m:s.S")   ==> 2006-7-2 8:9:4.18 <br/>Date.prototype.Format = function(fmt) <br/>{ //author: meizz <br/> var o = { <br/>  "M+" : this.getMonth()+1,         //月份 <br/>  "d+" : this.getDate(),          //日 <br/>  "h+" : this.getHours(),          //小时 <br/>  "m+" : this.getMinutes(),         //分 <br/>  "s+" : this.getSeconds(),         //秒 <br/>  "q+" : Math.floor((this.getMonth()+3)/3), //季度 <br/>  "S" : this.getMilliseconds()       //毫秒 <br/> }; <br/> if(/(y+)/.test(fmt)) <br/>  fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); <br/> for(var k in o) <br/>  if(new RegExp("("+ k +")").test(fmt)) <br/> fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); <br/> return fmt; <br/>}<br/>var time1 = new Date().format("yyyy-MM-dd HH:mm:ss");   <br/>var time2 = new Date().format("yyyy-MM-dd");<br/></span>
登入後複製

第二种方法:

<span style="font-family: 微软雅黑, "Microsoft YaHei";"><me:script language="javascript" type="text/javascript"><!--<br/>    <br/>/**  <br/> * 对Date的扩展,将 Date 转化为指定格式的String  <br/> * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符  <br/> * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)  <br/> * eg:  <br/> * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423  <br/> * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04  <br/> * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04  <br/> * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04  <br/> * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18  <br/> */   <br/>Date.prototype.pattern=function(fmt) {    <br/>  var o = {    <br/>  "M+" : this.getMonth()+1, //月份    <br/>  "d+" : this.getDate(), //日    <br/>  "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时    <br/>  "H+" : this.getHours(), //小时    <br/>  "m+" : this.getMinutes(), //分    <br/>  "s+" : this.getSeconds(), //秒    <br/>  "q+" : Math.floor((this.getMonth()+3)/3), //季度    <br/>  "S" : this.getMilliseconds() //毫秒    <br/>  };    <br/>  var week = {    <br/>  "0" : "/u65e5",    <br/>  "1" : "/u4e00",    <br/>  "2" : "/u4e8c",    <br/>  "3" : "/u4e09",    <br/>  "4" : "/u56db",    <br/>  "5" : "/u4e94",    <br/>  "6" : "/u516d"   <br/>  };    <br/>  if(/(y+)/.test(fmt)){    <br/>    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));    <br/>  }    <br/>  if(/(E+)/.test(fmt)){    <br/>    fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]);    <br/>  }    <br/>  for(var k in o){    <br/>    if(new RegExp("("+ k +")").test(fmt)){    <br/>      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));    <br/>    }    <br/>  }    <br/>  return fmt;    <br/>}   <br/>    <br/>var date = new Date();  <br/>window.alert(date.pattern("yyyy-MM-dd hh:mm:ss"));<br/>// --></mce:script><br/></span>
登入後複製

第三种方法:

<strong style="font-size: 14px;">Date.prototype.format = function(mask) {  <br/>    <br/>  var d = this;  <br/>    <br/>  var zeroize = function (value, length) {  <br/>    <br/>    if (!length) length = 2;  <br/>    <br/>    value = String(value);  <br/>    <br/>    for (var i = 0, zeros = &#39;&#39;; i < (length - value.length); i++) {  <br/>    <br/>      zeros += &#39;0&#39;;  <br/>    <br/>    }  <br/>    <br/>    return zeros + value;  <br/>    <br/>  };   <br/>    <br/>  return mask.replace(/"[^"]*"|&#39;[^&#39;]*&#39;|/b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])/1?|[lLZ])/b/g, function($0) {  <br/>    <br/>    switch($0) {  <br/>    <br/>      case &#39;d&#39;:  return d.getDate();  <br/>    <br/>      case &#39;dd&#39;: return zeroize(d.getDate());  <br/>    <br/>      case &#39;ddd&#39;: return [&#39;Sun&#39;,&#39;Mon&#39;,&#39;Tue&#39;,&#39;Wed&#39;,&#39;Thr&#39;,&#39;Fri&#39;,&#39;Sat&#39;][d.getDay()];  <br/>    <br/>      case &#39;dddd&#39;:  return [&#39;Sunday&#39;,&#39;Monday&#39;,&#39;Tuesday&#39;,&#39;Wednesday&#39;,&#39;Thursday&#39;,&#39;Friday&#39;,&#39;Saturday&#39;][d.getDay()];  <br/>    <br/>      case &#39;M&#39;:  return d.getMonth() + 1;  <br/>    <br/>      case &#39;MM&#39;: return zeroize(d.getMonth() + 1);  <br/>    <br/>      case &#39;MMM&#39;: return [&#39;Jan&#39;,&#39;Feb&#39;,&#39;Mar&#39;,&#39;Apr&#39;,&#39;May&#39;,&#39;Jun&#39;,&#39;Jul&#39;,&#39;Aug&#39;,&#39;Sep&#39;,&#39;Oct&#39;,&#39;Nov&#39;,&#39;Dec&#39;][d.getMonth()];  <br/>    <br/>      case &#39;MMMM&#39;:  return [&#39;January&#39;,&#39;February&#39;,&#39;March&#39;,&#39;April&#39;,&#39;May&#39;,&#39;June&#39;,&#39;July&#39;,&#39;August&#39;,&#39;September&#39;,&#39;October&#39;,&#39;November&#39;,&#39;December&#39;][d.getMonth()];  <br/>    <br/>      case &#39;yy&#39;: return String(d.getFullYear()).substr(2);  <br/>    <br/>      case &#39;yyyy&#39;:  return d.getFullYear();  <br/>    <br/>      case &#39;h&#39;:  return d.getHours() % 12 || 12;  <br/>    <br/>      case &#39;hh&#39;: return zeroize(d.getHours() % 12 || 12);  <br/>    <br/>      case &#39;H&#39;:  return d.getHours();  <br/>    <br/>      case &#39;HH&#39;: return zeroize(d.getHours());  <br/>    <br/>      case &#39;m&#39;:  return d.getMinutes();  <br/>    <br/>      case &#39;mm&#39;: return zeroize(d.getMinutes());  <br/>    <br/>      case &#39;s&#39;:  return d.getSeconds();  <br/>    <br/>      case &#39;ss&#39;: return zeroize(d.getSeconds());  <br/>    <br/>      case &#39;l&#39;:  return zeroize(d.getMilliseconds(), 3);  <br/>    <br/>      case &#39;L&#39;:  var m = d.getMilliseconds();  <br/>    <br/>          if (m > 99) m = Math.round(m / 10);  <br/>    <br/>          return zeroize(m);  <br/>    <br/>      case &#39;tt&#39;: return d.getHours() < 12 ? &#39;am&#39; : &#39;pm&#39;;  <br/>    <br/>      case &#39;TT&#39;: return d.getHours() < 12 ? &#39;AM&#39; : &#39;PM&#39;;  <br/>    <br/>      case &#39;Z&#39;:  return d.toUTCString().match(/[A-Z]+$/);  <br/>    <br/>      // Return quoted strings with the surrounding quotes removed  <br/>    <br/>      default:  return $0.substr(1, $0.length - 2);  <br/>    <br/>    }  <br/>    <br/>  });  <br/>    <br/>};<br/></strong>
登入後複製

以上是JavaScript如何格式化時間的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

抖音10級燈牌多少錢? 10級粉絲燈牌需要幾天? 抖音10級燈牌多少錢? 10級粉絲燈牌需要幾天? Mar 11, 2024 pm 05:37 PM

在抖音平台上,許多用戶都渴望獲得等級認證,其中10級燈牌更是展示用戶在抖音上的影響力和認可度。本文將深入探討抖音10級燈牌的價格以及達到此等級所需的時間,以幫助使用者更了解此過程。一、抖音10級燈牌多少錢?抖音10級燈牌的價格會受市場波動和供需情況的影響而有所差異,一般價格在幾千元到萬元之間。這個價格主要包括燈牌本身的成本和可能的服務費用。用戶可透過抖音官方管道或第三方服務機構購買10級燈牌,但在購買時要留意選擇合法管道,以免遭遇虛假或詐欺交易。二、10級粉絲燈牌要幾天?達到10級燈牌

dos指令怎麼格式化c盤 dos指令怎麼格式化c盤 Feb 19, 2024 pm 04:23 PM

DOS命令是Windows作業系統中使用的命令列工具,它可以用來執行各種系統管理任務和操作。其中一個常用的任務是格式化硬碟,包括C碟。格式化C碟是一個比較危險的操作,因為它將會清除C碟上的所有數據,並將檔案系統重新初始化。在執行這個操作之前,請確保你已經備份了重要的文件,並且清楚地了解格式化操作對你的電腦會產生的影響。下面是在DOS命令列中格式化

艾爾登法環通關需要多久 艾爾登法環通關需要多久 Mar 11, 2024 pm 12:50 PM

玩家在艾爾登法環中進行遊戲時可以體驗遊戲主線劇情,以及收集遊戲成就,有很多玩家不知道艾爾登法環通關需要多久,玩家的通關流程在30個小時。艾爾登法環通關需要多久答:30小時。 1、這個30小時的通關時長指的雖然不是高手般的速通,但也省略了許多的流程。 2.如果你想獲得更好的遊戲體驗或是體驗完整的劇情,那麼時長上肯定要花費更多的時間。 3.如果玩家是全收集大約要100-120小時。 4.如果是只走主線刷BOSS大約:50-60小時。 5.如果是想全部體驗:150小時打底。

小紅書發佈作品時間怎麼設定?發布作品時間準確嗎? 小紅書發佈作品時間怎麼設定?發布作品時間準確嗎? Mar 24, 2024 pm 01:31 PM

小紅書,一個充滿生活氣息與知識分享的平台,讓越來越多的創作者在這裡暢所欲言。要想在小紅書上獲得更多的關注和點贊,除了內容品質之外,發布作品的時間也是至關重要的。那麼,如何設定小紅書發布作品的時間呢?一、小紅書發布作品時間怎麼設定? 1.了解用戶活躍時間首先,需要先明確小紅書用戶的活躍時間。通常來說,晚上8點到10點以及週末下午是用戶活躍度較高的時段。然而,這個時段也會受到受眾群體和地理等因素的影響而有所不同。因此,為了更能掌握用戶活躍時段,建議對不同族群的行為習慣進行更詳細的分析。透過了解用戶的活

手機格式化恢復方法大揭密(手機故障?別急) 手機格式化恢復方法大揭密(手機故障?別急) May 04, 2024 pm 06:01 PM

現今,無法開機等,卡頓,我們難免會遇到一些問題,例如係統崩潰、但在使用過程中、手機已成為我們生活中不可或缺的一部分。我們往往束手無策、有時、對於這些問題的解決方法。幫助你解決手機故障,本文將為大家介紹一些手機格式化恢復的方法、讓手機重新恢復正常運作。備份資料-保護重要資訊安全通訊錄等,如照片、聯絡人、以免在格式化過程中遺失、在進行手機格式化之前、首先要考慮的是備份手機上的重要資料和檔案。確保資料的安全性、或選擇將檔案傳輸至雲端儲存服務中,可以透過連接電腦進行備份。使用系統自備恢復功能-簡

格式化筆記型電腦會使其速度更快嗎? 格式化筆記型電腦會使其速度更快嗎? Feb 12, 2024 pm 11:54 PM

格式化筆記型電腦會使其速度更快嗎?如果您想格式化您的Windows筆記型電腦,但想知道它是否會使速度更快,本文將幫助您了解這個問題的正確答案。格式化筆記型電腦會使其速度更快嗎?使用者格式化Windows筆記型電腦的原因有很多。但最常見的原因是筆記型電腦的效能或速度緩慢。格式化筆記型電腦會徹底刪除C碟或安裝Windows作業系統的硬碟分割區上儲存的所有資料。因此,每個用戶在採取這一步驟之前都會三思而後行,尤其是在筆記型電腦的性能方面。本文將幫助您了解格式化筆記型電腦是否會加快速度。格式化筆記型電腦有助於

Linux 檔案時間查看技巧詳解 Linux 檔案時間查看技巧詳解 Feb 21, 2024 pm 01:15 PM

Linux檔案時間檢視技巧詳解在Linux系統中,檔案的時間資訊對於檔案管理和追蹤變更非常重要。 Linux系統透過三種主要時間屬性來記錄檔案的變更訊息,分別是存取時間(atime)、修改時間(mtime)和變更時間(ctime)。本文將詳細介紹如何查看和管理這些文件時間信息,並提供具體的程式碼範例。 1.查看文件時間資訊透過使用ls指令結合參數-l可以列出文

html格式化的方法有哪些 html格式化的方法有哪些 Mar 08, 2024 am 09:53 AM

html格式化方法:1、使用線上HTML格式化工具;2、使用程式碼編輯器自帶的HTML格式化快速鍵,如Visual Studio Code中的Shift + Alt + F;3、使用插件,如Sublime Text中的HTML/CSS/JS Prettify插件;4、使用命令列工具,如HTML Tidy;5、手動格式化,依照編碼規格和習慣手動格式化。

See all articles