2012-02-17 10 views
1

は私のコードです:新しいDate()とスプリット()、クロスブラウザの互換性

 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、定義されていない定義を示し、一部のブラウザは私が探しているものを示しています。

誰かが私に欠けているものを見つけることができますか?

フィドル:http://jsfiddle.net/nxyum/

作品について:

Windows: Chrome, Safari 
Mac: Chrome, Opera 

動作しません:私はあなたのコードで何をしているかが表示されない

Windows: Firefox, Opera, IE 
Mac: Firefox, Safari 
+0

動作しないブラウザがありません。 – mowwwalker

+0

@Walkerneoはい行方不明のブラウザは動作しないブラウザです。 – jQuerybeast

+0

私が言ったことは、それがうまくいかないブラウザをあなたに教えれば助けになるということでした。 – mowwwalker

答えて

1

...好きなようにフォーマットされた日付を出力するのは簡単です。

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 
*/ 
+0

Uncaught SyntaxError:予期しない文字列です。私のコードではうまくいかない:t.split( '、')[1] .substring(1,4) – jQuerybeast

+0

@jQuerybeastもう一度やり直してください。結果配列の最初の項目の後にカンマがありませんでした。 –

+0

私のコードが間違っていた場所を見つける必要はありません。あなたはただの作品に答えます。どうもありがとう – jQuerybeast

関連する問題