javascript - js 關于時間的轉換以及時間的加減。
問題描述
一、關于時間的轉換
默認
mounted () { this.HomePageDisplay(); var myDate = new Date(); var reg=/[u4E00-u9FA5]/g; this.latestS=myDate.toLocaleString().replace(///g,’-’).replace(/:/g,’-’).replace(/[ ]/g,'').replace(reg,’’); console.log(this.latestS)},
這個我是轉換的。
我想要的是 2017-07-05-04 。。
二、關于時間的加減。
1、2017-07-05-04 減去10個小時。 格式不變。。2、 當前的小時減去10個小時。。 下面代碼我寫的。 給自己蠢哭了。 求指點。。
var timeData = [ myDate.getHours()-10, myDate.getHours()-9, myDate.getHours()-8, myDate.getHours()-7, myDate.getHours()-6, myDate.getHours()-5, myDate.getHours()-4, myDate.getHours()-3, myDate.getHours()-2, myDate.getHours()-1, myDate.getHours(), ];
問題解答
回答1:關于時間的處理,建議引入 moment 庫。http://momentjs.com/docs/#/pa...
var t = moment().format(’YYYY-MM-DD-HH’);console.log(t); //2017-07-03-18var tsub = moment(t, ’YYYY-MM-DD-HH’).subtract(10, ’hours’).format(’YYYY-MM-DD-HH’);console.log(tsub); //2017-07-03-08回答2:
需要2017-03-14-04-50-08這樣的格式的話:
var str = ’2017/3/14 下午4:50:08’;var arr = str.split(/[ ^d ]+/g).map(item => (parseInt(item, 10) < 10 ? ’0’ + parseInt(item, 10) : item )).join(’-’);console.log(arr);
至于時間的加減的話,如樓上所言,項目引入moment.js等庫其實挺好的。
回答3:Date.prototype.format = function(fmt) { var o = { 'M+' : this.getMonth()+1, //月份 'd+' : this.getDate(), //日 'h+' : this.getHours(), //小時 'm+' : this.getMinutes(), //分 's+' : this.getSeconds(), //秒 'q+' : Math.floor((this.getMonth()+3)/3), //季度 'S' : this.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)) { fmt=fmt.replace(RegExp.$1, (this.getFullYear()+'').substr(4 - RegExp.$1.length)); } for(var k in o) {if(new RegExp('('+ k +')').test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (('00'+ o[k]).substr((''+ o[k]).length))); } } return fmt; }new Date().format('yyyy-MM-dd hh:mm:ss');//'2017-07-03 17:01:35'加減法用總的毫秒數計算,然后在轉化成時間。 回答4:
Date.prototype.past = function(pattern, pastDays) {
function zeroize(num) { return num < 10 ? '0' + num : num;};var pastday = new Date((this - 0) - 1000 * 60 * 60 * 24 * pastDays);var pattern = pattern; // YYYY-MM-DD 或 MM-DD-YYYY 或 YYYY-MM-DD , hh : mm : ssvar dateObj = { 'Y': pastday.getFullYear(), 'M': zeroize(pastday.getMonth() + 1), 'D': zeroize(pastday.getDate()), 'h': zeroize(pastday.getHours()), 'm': zeroize(pastday.getMinutes()), 's': zeroize(pastday.getSeconds())};return pattern.replace(/YYYY|MM|DD|hh|mm|ss/g, function(match) { switch (match) {case 'YYYY': return dateObj.Y;case 'MM': return dateObj.M;case 'DD': return dateObj.D;case 'hh': return dateObj.h;case 'mm': return dateObj.m;case 'ss': return dateObj.s; };});
};var timeEnd = new Date();timeEnd = timeEnd.getFullYear() + ’/’ + (timeEnd.getMonth() + 1) + ’/’ + timeEnd.getDate() + ’ ’ + timeEnd.getHours() + ’:’ + timeEnd.getMinutes();你的意思是當前時間往前推10分鐘,new Date(timeEnd).past(’YYYY-MM-DD hh : mm : ss’, 1/(24*6));
相關文章:
1. angular.js - 關于$apply()2. angular.js使用$resource服務把數據存入mongodb的問題。3. MySQL數據庫中文亂碼的原因4. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下5. nignx - docker內nginx 80端口被占用6. android-studio - Android Studio 運行項目的時候一堆警告,跑步起來!?7. dockerfile - [docker build image失敗- npm install]8. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???9. mysql - 新浪微博中的關注功能是如何設計表結構的?10. 如何解決Centos下Docker服務啟動無響應,且輸入docker命令無響應?
