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中...