2011-12-03 17 views
1

私はJavaScriptを使用しており、小さな問題で立ち往生しています。JavaScriptで正しい形式の日付をフォーマットする方法

私は、JSONレスポンス1322919399447-0500

でこの日を受けていると私は次のようにこれをフォーマットします:6:50 PM, Dec 3rd 2011

+0

の可能重複[JSONの日付をフォーマットする方法は?](http://stackoverflow.com/questions/206384/how-to-format-a-json-date) – ajreal

+0

が人気トピックですあなたは既存の質問を見つけることができます(確かにあります) – ajreal

+0

この質問に戻って答えをチェックし、あなたが一番好きなものを受け入れることができますか? – kubetz

答えて

1

これが最良の方法であるかどうかはわかりませんが(実際はそうではないと確信していますが)、本質的にjs Dateオブジェクトにその日付文字列を作成してから、 :

var dateThing = new Date(1322919399447-0500); 
dateThing.getFullYear(); // 2011 
dateThing.getDay(); // 6 
dateThing.getDate(); // 3 
dateThing.getMonth(); // 11 
dateThing.getHours(); // 8 (test for anything over 12, that indicates PM) 
dateThing.getMinutes(); // 36 

次に、これらの部分を独自の形式に連結することができます。私が言ったように、おそらくもっと良い方法がありますが、これはピンチで動作します。

+0

ああ、そのポストajrealの良いもののトンが記載されています。見てみな。 –

+2

Dateコンストラクタの '-0500'は良い考えではありません。 1つは、タイムゾーンのオフセット(UTCからの時間数)を意図しています。別の例では、厳格なモード外の '0500'は8進数 '0500'の10進数値である '320'になります。実際には、5時間ではなく、実際の日付値から320ミリ秒離れています。 –

+0

thanx alot ....! –

1

私はこの便利な少しdate format addonを使用し、それは私のために非常にうまくいった。その月の厄介なインターネットエクスプローラの不具合を世話しました。

1

Hereは、入力例のスニペットです。それはscriptでリンクしています。Zoidberg

このコードは、書式設定されたUTCの日付を返します。あなたの現地日が必要な場合は、returnステートメントからUTC:を削除してください。

function convertTime(dateString) { 
    // get ms part from the string 
    var milis = +dateString.substring(0, 13); 
    // get timezone part as "# of hours from UTC", e.g. "-0500" -> -5 
    var offset = +dateString.substring(13, 16); 
    // move the time for "offset" number of hours (to UTC time) 
    var date = new Date(milis - offset * 3600000); 
    // using http://stevenlevithan.com/assets/misc/date.format.js 
    return date.format("UTC:h:MM TT, mmm dS yyyy"); 
} 

EDITは:私たちはUTCに正規化したいと- offset *+ offset *を変更しました。

1

これは、PHPの日付関数が使用するのと同じフラグを使用して作成したのと同じ日付フォーマット関数です。

PHP date function in Javascript

関連する問題