1、今天遇到这么个问题,将时间转化为毫秒在苹果手机上出现NaN 情况
//在安卓上这个写可以获取到的 var date = '2017-06-12'; var time = new Date(date).getTime()/1000; //但在苹果手机上是不支持的,必须这样写: var time = new Date(date.replace(/-/g,'/')).getTime()/1000;
注意:获取毫秒后必须除以1000,这样就是时间正常转化的毫秒数
2、将毫秒数转化为自己想要的格式
//时间格式转化 Date.prototype.format = function(format){ var date = { "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+)/i.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)); } for (var k in date) { if (new RegExp("(" + k + ")").test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length)); } } return format; } //调用方法 function callTime(nS,style){ var newDate = new Date(); newDate.setTime(nS * 1000); return newDate.format(style); } callTime(nS,style); /*nS是指所转化为样式时间的毫秒数 style 是指所形成的样式,例如:'yyyy年MM月dd日 hh:mm:ss','yyyy-MM-dd',等等 注意:yyyy MM dd hh mm ss ,它们中间可以加你想要的格式,也可以不写,它们其中任何一个 ,但是必须保证它们每个位数 ,比如不写 ss 那就不会显示秒 */
3、将毫秒数转化为自己想要的格式,有时候还是满足不了需求,有时会提出想显示在几分钟前,几小时前,几个月前。遇到这样的需求不要怕,那么咋们继续处理
//时间戳转 xx月前,xx分钟前 function timeConversion(time){ var minute = 60; var hour = minute * 60; var day = hour * 24; var halfamonth = day * 15; var month = day * 30; var now = Math.round(new Date().getTime()/1000); var diffValue = now - time; if(diffValue < 0){return;} var monthC =diffValue/month; var weekC =diffValue/(7*day); var dayC =diffValue/day; var hourC =diffValue/hour; var minC =diffValue/minute; if(monthC>=1){ result="" + parseInt(monthC) + "月前"; } else if(weekC>=1){ result="" + parseInt(weekC) + "周前"; } else if(dayC>=1){ result=""+ parseInt(dayC) +"天前"; } else if(hourC>=1){ result=""+ parseInt(hourC) +"小时前"; } else if(minC>=1){ result=""+ parseInt(minC) +"分钟前"; }else result="刚刚"; return result; } //调用 timeConversion(time) //time 是将要转化的毫秒