[英]new Date() and split() cross-browser compatibility
我正在嘗試將日期顯示為Fri, Feb 17 2012
Friday, February 17, 2012
而不是Fri, Feb 17 2012
Friday, February 17, 2012
這是我的代碼:
var n = new Date(),
ampm = 'am',
h = n.getHours(),
m = n.getMinutes(),
s = n.getSeconds();
if (h >= 12) {
if (h > 12) h -= 12;
ampm = 'pm'
}
if (h < 10) h = '0' + h;
if (m < 10) m = '0' + m;
t = n.toLocaleDateString();
var d =
t.split(',')[0].substring(0, 3)
+ ', '
+ t.split(',')[1].substring(1, 4)
+ ' '
+ t.split(',')[1].split(' ')[2]
+ t.split(',')[2]
+ ', '
+ ' '
+ h + ':' + m + ' ' + ampm;
var e = Math.round((new Date() - new Date('2012/01/01').getTime()) / 1000);
var f = [1];
var a = [];
var i = 0;
alert(d);
現在,這在某些瀏覽器上有效,但在其他瀏覽器上無效。 有些瀏覽器顯示17、201,undefinedundefined,有些瀏覽器顯示我在尋找什么。
誰能發現我所缺少的東西?
小提琴: http : //jsfiddle.net/nxyum/
適用於:
Windows: Chrome, Safari
Mac: Chrome, Opera
不起作用:
Windows: Firefox, Opera, IE
Mac: Firefox, Safari
我看不到您對代碼的處理方式...很容易以任何您喜歡的方式輸出格式化的日期-
Date.prototype.shortString= function(){
var D= this,
shortdays= ['Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat'],
shortmonths= ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
return [shortdays[D.getDay()], ', ', shortmonths[D.getMonth()], ' ',
D.getDate(), ' ', D.getFullYear()].join('');
}
new Date().shortString()
/* returned value: (String)
Fri, Feb 17 2012
*/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.