2016-12-08 9 views
0

私はこの変数 'previousDate'を持っていて、それを前の日付に割り当てました。Json.Stringifyは私の日付オブジェクトを混乱させました

var previousDate; 

console.log(previousDate)を実行すると、コンソールでこの値が取得されます。

Wed Dec 07 2016 10:02:37 GMT-0800 (Pacific Standard Time) 

このデータをjson.stringifyすると、次の日付と時刻になります。

2016-12-07T18:02:37.223Z 

日付は同じですが、ここで時間をメモしてください。 PSTの代わりに、私はGMTを表示しています。私はストリング時にもここでPSTのタイミングを取る必要があります。何か提案してください?

+0

上の私の骨子?日付オブジェクトを転送するには、通常、UTCのタイムゾーンを使用する方が簡単でエラーが発生しにくい方法です。 – Timo

+0

stringifyの後にPSTのタイミングを表示したい。しかし、それは私が推測するUTCを示す... –

答えて

1

JavaScriptの日付の値にタイムゾーン情報が含まれていません。

コンソールに何かを記録すると、ブラウザーは関連性のある有用な情報を表示するために最善を尽くします。日付の場合、UTC値が格納されているローカルタイムゾーンには、「GMT-0800(太平洋標準時)」でなければならないことがよくあります。

あなたはUTCの時刻を表示したい場合は、あなたが書くことができます。

console.log(date.toUTCString()) 

これはJSON.stringifyは、ボンネットの下にやっていることです。 UTCで日付を転送すると、その情報がさまざまなタイムゾーンを越えなければならない場合には簡単になります。

しかし、その動作はあなたが探しているものではないようです。あなたは、あなたがそれを送信する際に、文字列は、ローカル・タイムゾーンになりたい場合は、あなたが書くことができます。

console.log(date.toString()) 
1

をあなたが欲しいものを手に入れることができますようにあなたが行う場合は、になります。

date.toDateString() + ' ' + date.toTimeString()

2

オブジェクトを作成し、日付文字列を返すメソッドを作成します。
サンプル:

var obj = { d1: (new Date()), d1String: function() { return this.d1.toString(); } } 

またはあなたのオブジェクトのいずれかのプロパティにYourDate.toString()を保存します。

var objDate = { dateString: YourDate.toString() ;} 

それとも

var ff = function(YourObject) { var OBJ = {} ; 
for(x in YourObject) 
{ 
    if (typeof(YourObject[x]) !== "function") 
     eval("OBJ." + x + " = '" + YourObject[x] + "'"); 
    else 
     eval("OBJ." + x + " = '" + YourObject[x]() + "'"); 
} 
var strOBJ = JSON.stringify(OBJ); 
return strOBJ; 
} 

正確にあなたの目標は何ですかGitHubの

https://gist.github.com/kiaratto/afb6bb9acd21d0dda37157eb3a92ec2f

関連する問題