js 把字串格式化成時間

2022-03-24 06:10:20 字數 1429 閱讀 2347

js裡面的date.parse() 方法接收字串,返回乙個時間,但是接收的字串格式缺不能指定,這很蛋疼,這樣就有了瀏覽器差異,所以需要乙個可以指定字串格式的方法,將時間字串轉化為時間

難點在於佔位符個數的問題,需要格式字串和時間字串完全的匹配才可以,這樣就限制了功能,但是目前我還沒想到什麼辦法來解決這個問題,只能做乙個初步的實現,滿足我基本的需求

/**

* 根據formatter字串轉換時間字串

* 月(m)、日(d)、小時(h)、分(m)、秒(s) 佔位符個數需要和時間字串匹配

* @param datestr 時間字串 如:"2015-11-12"

* @param fmt 格式化字串 如:"yyyy-mm-dd"

* @return 標準時間

* author: shaojiasong 2015-12-29

*/function parsedate(datestr,fmt)

//排除特殊字元,避免正則發生錯誤

fmt = fmt.replace(/([\^\$\.\*\+\?\=\!\:\|\\\/\(\)\[\]\])/ig,"\\$1");

function getreg(str)) || "";

return cfmt.replace(/[ymdhmss]/g,"\\d");

} var year = parseint((new regexp(getreg("y")).exec(datestr)[1])) || 0;

var month = parseint((new regexp(getreg("m")).exec(datestr)[1])) - 1 || 0;

var day = parseint((new regexp(getreg("d")).exec(datestr)[1])) || 0;

var hour = parseint((new regexp(getreg("h")).exec(datestr)[1])) || 0;

var minute = parseint((new regexp(getreg("m")).exec(datestr)[1])) || 0;

var second = parseint((new regexp(getreg("s")).exec(datestr)[1])) || 0;

return new date(year,month,day,hour,minute,second);

}

用例

var mydate = parsedate("2015-11-12 12:25:30","yyyy-mm-dd hh:mm:ss"); //結果: thu nov 12 2015 12:25:30 gmt+0800 (中國標準時間)

把時間型別字串格式化成字串的問題

今天程式設計的時候遇到個問題,先把資料庫裡查詢出來的 2007 08 17 21 50 58.0 格式的字串格式化成 2007 08 17 的字串展示在頁面,用了 dateformat來轉換 但一直報錯,和面發現自己犯了個錯誤 貼上 dateformat ar new dateformat yyyy...

js 字串格式化為時間格式

首先介紹一下我遇到的坑,找了幾個關於字串轉時間的,他們都可以就我用的時候不行。我的原因,我的字串是mysql拿出來的不是標準的時間格式,是不會轉成功的。解決思路 先將字串轉為標準時間格式的字串,在轉為時間 字串轉日期格式,strdate要轉為日期格式的字串 function getdate strd...

時間字串格式化

利用正則在string原型上新增乙個方法 把指定時間格式的字串換成我們想要的各種格式,例如我們有時需要把 2016 12 22 03 10 00 或者 2016 12 22 03 10 00 等時間字串換成我們想要的2016年12月22日 3時10分0秒等形式展示出來,那麼利用正則以及string中...