JavaScript時間戳、日期相互轉換

開發過程當中會遇到不少須要時間戳和標準時間相互轉化的需求,稍大型項目會引入相似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

 

相關文章
相關標籤/搜索