Safari IPhone / IPad中的Nan错误日期

时间:2014-02-25 04:30:56

标签: javascript ios iphone ipad nan

a:int exp:1389334939     在Chrome,FireFox,IE:08:53 19/02/2014;     在Safari(Iphone / Ipad)中:NaN:NaN NaN / NaN / NaN;     如何解决这个问题?'

function formatDateTime(a) {
    var e = [
        [11, 'sáng'],
        [14, 'trưa'],
        [19, 'chiều']
    ];
    var f = ['chủ nhật', 'thứ hai', 'thứ ba', 'thứ tư', 'thứ năm', 'thứ sáu', 'thứ bảy'];
    var g = new Date();
    var j = new Date(a * 1000);
    var d = Math.floor(g.getTime() / 1000) - a;
    if (d < 60) return d + ' giây trước';
    if (d < 3600) return Math.floor(d / 60) + ' phút trước';
    if (d < 43200) return Math.floor(d / 3600) + ' tiếng trước';
    var h = j.getHours();
    var m = fill2(j.getMinutes());`enter code here`
    if (d < 518400) {
        var b = 'tối';
        for (i = 0; i < 3; i++) if (h < e[i][0]) {
            b = e[i][1];
            break
        }
        d = (g.getDay() + 7 - j.getDay()) % 7;
        var k = '';
        var sdate = true;
        if (d == 0) {
            k = 'hôm nay';
            sdate = false;
        } else if (d == 1) {
            k = 'hôm qua';
            sdate = false;
        } else k = f[j.getDay()];
        var result = (h % 12).toString() + ':' + m + ' ' + b + ' ' + k;
        if (sdate) result += ', ' + fill2(j.getDate()) + '/' + fill2(j.getMonth() + 1) + '/' + j.getFullYear();
        return result;
    }
    h = fill2(h);
    return h + ':' + m + ' ' + fill2(j.getDate()) + '/' + fill2(j.getMonth() + 1) + '/' + j.getFullYear();
}

function fill2(value) {
    return value < 10 ? ('0' + value) : value;
}

非常感谢!

1 个答案:

答案 0 :(得分:0)

尝试阅读有关Javascript的´Date´对象的MDN页面。

的Javascript

function pad(value) {
    return value < 10 ? ('0' + value) : value;
}

function formatDateTime(a) {
    var dateFromMillis = new Date(a * 1000),
        hours = pad(dateFromMillis.getUTCHours()),
        minutes = pad(dateFromMillis.getUTCMinutes()),
        date = pad(dateFromMillis.getUTCDate()),
        month = pad(dateFromMillis.getUTCMonth() + 1),
        year = dateFromMillis.getUTCFullYear();

    return hours + ':' + minutes + ' ' + date + '/' + month + '/' + year;
}

console.log(formatDateTime(1389334939))

输出

06:22 10/01/2014 

jsFiddle

如果您需要当地时间,请从方法中删除UTC