Safari iPhone/iPad 中的 Nan 错误日期
Posted
技术标签:
【中文标题】Safari iPhone/iPad 中的 Nan 错误日期【英文标题】:Nan Error Date in Safari IPhone/IPad 【发布时间】:2014-02-25 04:30:55 【问题描述】: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;
非常感谢!
【问题讨论】:
你想达到什么目的(输入-输出)?您将什么值传递给formatDateTime(a)
您是否有演示该问题的 jsFiddle?
输入是整数:1389334939 输出:08:53 19/02/2014
在 Safari (Iphone/Ipad) 中输出:NaN:NaN NaN/NaN/NaN;
而1389334939
是什么?自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数?
日期时间的总秒数。 //var j = new Date(a * 1000);自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数?
【参考方案1】:
尝试阅读有关 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
。
【讨论】:
以上是关于Safari iPhone/iPad 中的 Nan 错误日期的主要内容,如果未能解决你的问题,请参考以下文章
CSS 背景位置在 Mobile Safari (iPhone/iPad) 中不起作用
为啥在 iOS Safari Mobile (iPhone / iPad) 中没有触发模糊事件?
CSS 跨浏览器问题 - 旋转在 Safari、Ipad 和 Iphone 上不起作用
在 Iphone、Ipad 和使用 Safari 浏览器中 - 警报“使用 myapp 打开”