2013-07-03 20 views
5

私は、スクリプトを持っていると私は短い日付形式、すなわちにアウト日付をフォーマットします:最初の日付形式はそのようレンダリングtoLocaleDateString Javascriptの日付フォーマットの問題

2013年7月3日または7/3/13それ以外のブラウザでは表示されません。日付の月名と年が表示されます。

function dateFormatter(date) { 
    return date.toLocaleDateString(); 
} 

なぜこれが起こっているのか混乱しています。そのブラウザがtolocalDateString()をサポートしていないからです。

カスタム日付文字列を作成する必要がありますか?

申し訳ありませんが少し漠然としている - 私はW3Cのウェブサイトを見てきましたが、時々そのサイトを信頼していません。

答えて

2
function dateFormatter(date){ 
    if(Date.parse('2/6/2009')=== 1233896400000){ 
     return [date.getMonth()+1, date.getDate(), date.getFullYear()].join('/'); 
    } 
    return [date.getDate(), date.getMonth()+1, date.getFullYear()].join('/'); 
} 
+7

これはロケールを意識したものではありません。 – Koterpillar

+0

@kennebecは完璧に動作しました。私はこれに似たものを試しましたが、正直言って私はちょうどそれを台無しにしました。しかし、それはスムーズに機能しました。乾杯。 – MJCoder

+1

@kennebec、if条件とは何ですか、なぜこの変な2/6/2009日付チェックが必要ですか? –

9

デフォルトの形式toLocaleDateStringは、実装定義です。表示内容を正確に制御したい場合は、locales and options argumentstoLocaleDateStringをサポートするブラウザを使用してください。残念ながら、現時点ではChromeだけを意味します。

ユーザーとそのロケールを気にせず、すべてのユーザーを米国の日付形式と混同したい場合は、yesを使用して、@kennebecが提案した日付部分をハードコードできます。

+0

オプション引数について言及してくれてありがとう。 – Tony

関連する問題