開發過程當中會遇到不少須要時間戳和標準時間相互轉化的需求,稍大型項目會引入相似moment.js,但對於簡單h5頁面,更多的須要簡單的方法來處理日期測試
1.日期格式化,時間戳轉日期,相似 "1512053866000"轉化爲"2017-11-30 22:57:46"spa
timeStr | "September 16,2016"、"2016/09/16 14:15:05"、"2016/09/16"、'2014-04-23T18:55:49'和毫秒 |
dateSeparator | 年、月、日之間的分隔符,默認爲"-" |
timeSeparator | 時、分、秒之間的分隔符,默認爲":" |
1 function getFormatDate(timeStr, dateSeparator, timeSeparator) { 2 dateSeparator = dateSeparator ? dateSeparator : "-"; 3 timeSeparator = timeSeparator ? timeSeparator : ":"; 4 var date = new Date(timeStr), 5 year = date.getFullYear(),// 獲取完整的年份(4位,1970) 6 month = date.getMonth(),// 獲取月份(0-11,0表明1月,用的時候記得加上1) 7 day = date.getDate(),// 獲取日(1-31) 8 hour = date.getHours(),// 獲取小時數(0-23) 9 minute = date.getMinutes(),// 獲取分鐘數(0-59) 10 seconds = date.getSeconds(),// 獲取秒數(0-59) 11 Y = year + dateSeparator, 12 M = ((month + 1) > 9 ? (month + 1) : ('0' + (month + 1))) + dateSeparator, 13 D = (day > 9 ? day : ('0' + day)) + ' ', 14 h = (hour > 9 ? hour : ('0' + hour)) + timeSeparator, 15 m = (minute > 9 ? minute : ('0' + minute)) + timeSeparator, 16 s = (seconds > 9 ? seconds : ('0' + seconds)), 17 formatDate = Y + M + D + h + m + s; 18 return formatDate; 19 }
//測試代碼
let timer = Date.parse(new Date()); //1512053866000
console.log(getFormatDate(timer)); //"2017-11-30 22:57:46"
1 function getCommonTime(milliseconds) { 2 var date = new Date(milliseconds), 3 time = date.toLocaleString(),//這種方法獲取的時間格式根據電腦的不一樣而有所不一樣 4 formatTime = getFormatDate(date);//獲取格式化後的日期 5 return time; 6 } 7 8 //測試代碼 9 10 getCommonTime(1512053866000); //"2017/11/30 下午10:57:46"
2. 日期格式轉化時間戳,相似"September 16,2016"、"2016/09/16 14:15:05"、"2016/09/16"、"2016-04-23 18:55:49"code
1 function getMilliSeconds(timeStr) { 2 var date = new Date(timeStr), 3 ms = date.getTime();//or ms=date.valueOf();返回指定時間距離1970年1月1日0時0分0秒的毫秒 4 return ms; 5 } 6 //測試代碼 7 var timeStr=1398250549490, 8 timeStr1 = "September 16,2016 14:15:05", 9 timeStr2 = "September 16,2016", 10 timeStr3 = "2016/09/16 14:15:05", 11 timeStr4 = "2016/09/16", 12 timeStr5 = '2014-04-23T18:55:49'; 13 console.log("普通時間轉換成時間戳:" + getMilliSeconds(timeStr1) + "、" + getMilliSeconds(timeStr2) + "、" + getMilliSeconds(timeStr3) + "、" + getMilliSeconds(timeStr4) + "、" + getMilliSeconds(timeStr5)); 14 15 //格式化日期轉時間戳 16 /* 17 * timeStr:時間,字符串,例如:"2016-09-16 14:15:05" 18 * */ 19 function getFormatMilliSeconds(timeStr) { 20 var dateStr = timeStr.replace(/-/g, '/'), 21 milliSeconds; 22 //method1: 23 milliSeconds = Date.parse(dateStr); 24 //method2: 25 //var date = new Date(dateStr); 26 //milliSeconds = date.getTime();//or milliSeconds=date.valueOf() 27 return milliSeconds; 28 } 29 //測試代碼 30 console.log('格式化後的時間轉時間戳:'+getFormatMilliSeconds('2016-04-23 18:55:49'));//1461408949000