时间戳中newData().getTime()中在苹果上的问题

时间:2024-03-06 20:40:09

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 是将要转化的毫秒