h5页面会应到到PC、Android、IOS,但是,我们经常用到的new Date().Format(' ') 有可能不兼容所有的系统。最近在做h5时,遇到ios不识别'2017-03-12 12:09',返回的是NaN,网上查了一些方法,做下总结:
封装的一些时间格式方法:
1.时间格式化
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;
};
2. 格式化秒数到时间格式 00:02:03
Number.prototype.formatTime = function() {
// 计算
var h = 0,
i = 0,
s = parseInt(this);
if (s >= 60) {
i = parseInt(s / 60);
s = parseInt(s % 60);
if (i >= 60) {
h = parseInt(i / 60);
i = parseInt(i % 60);
}
}
// 补零
var zero = function(v) {
return (v >> 0) < 10 ? "0" + v : v;
};
return [zero(h), zero(i), zero(s)].join(":");
};
3.// 倒计时,t:秒数
Date.Countdown = function(t){
var d = 0,
h = 0,
m = 0,
s = t;
var countdown = '';
if (s > 60) {
m = parseInt(s / 60);
s = parseInt(s % 60);
if (m > 60) {
h = parseInt(m / 60);
m = parseInt(m % 60);
if (h > 24) {
d = parseInt(h / 24);
h = parseInt(h % 24);
}
}
}
if (d > 0) {
countdown = d + '天' + h + '小时' + m + '分' + s + '秒';
}else if (h > 0) {
countdown = h + '小时' + m + '分' + s + '秒';
}else if (m > 0) {
countdown = m + '分' + s + '秒';
}else if (s > 0) {
countdown = s + '秒';
}else{
countdown = 0;
}
return countdown;
};
如果需要处理的时间格式是‘2017-03-12 12:11’,在ios上不识别,需要转换成2017/03/12/12/11,这样就可以了:
var testTime = ‘2017-03-12 12:11’;
var arr = testTime.split(/[- : \/]/);
var servertime = new Date(arr[0],arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
alert(servertime);
或者
var time = new Date().Format('yyyy/MM/dd/hh/mm/ss');