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. javascript - 一个字符串转换成数字,例子就是a="2,322.222",b=’1,211.21’,如何在angualr中执行相减2. 微信chooseImage接口部分机型选择图片后莫名其妙的跳转其他页面3. mysql 存储过程4. python 中对redis 操作采用装饰器进行处理,怎么做5. python - flask_Bootstrap的WTF的调用疑问6. javascript - H5 video标签可以设置亮度吗?7. python - django 列表页怎样通过按钮实现调起模态框8. Python3安装selenium后下载chormdriver出现问题,大家是什么解决的9. windows docker-machine port10. 看不懂你这一步的操作