2017-05-22 4 views
0

これが最初で、クライアント側で完全に正常に動作します:た後しかしgetDay()サーバに送信された日付以降にクライアント側の動作しません

var timeOfMessageSent = new Date(); 
 
console.log(timeOfMessageSent); // Mon May 22 2017 14:03:13 GMT+0200 (Romance Summer Time) 
 
var day = timeOfMessageSent.getDay(); // 1 
 
console.log("this is the day: ",day);

を、サーバーに日付を送信し、それをクライアントに送り返しても動作しません。

ここで、日付は次のように表示されます。2017-05-22T12:03:13.437Z getDateが機能しないのはそうだと思います。

最初に日付が表示されていることを確認するにはどうすればよいですか?例えば2017-05-22T12:03:13.437Z

+0

あなたの 'Date'オブジェクトがどこかのISO文字列表現に置き換えられたようです。 –

答えて

1

サーバーの日付文字列をオブジェクトにします。

var timeOfMessageSent = new Date(); 
 
console.log(timeOfMessageSent); // Mon May 22 2017 14:03:13 GMT+0200 (Romance Summer Time) 
 
var day = timeOfMessageSent.getDay(); // 1 
 
console.log("this is the day: ",day); 
 

 
var newDate = new Date("2017-05-25T12:19:55.982Z"); // give your server date and return as date object 
 
var newDay = newDate.getDay(); 
 
console.log("this is the new day: ", newDay);

1

日付がサーバーからISO文字列として返されるようです。この文字列から新しいDateインスタンスを作成する必要があります。

文字列を使用して日付オブジェクトを作成することは通常避けますが、ISO日付文字列は標準で日付オブジェクトを初期化する最も安全な日付文字列形式です。

Javascriptの日付オブジェクトは、JSONの一部である可能性があるオブジェクトではないため、JSON APIを使用して送信するには、文字列または数値に変換する必要があります。そのため、サーバーはこの日付のISO文字列表現を返します。
JSON APIでよく使用されるISO文字列の代わりに、日付をミリ秒を表す数値に変換することもできます。両方の品種は、日付コンストラクタを使用してJavascriptの日付オブジェクトに変換できます。new Date(dateValue)

+0

どのように文字列から新しい日付インスタンスを作成しますか? – JonasSH

+1

@JonasSH日付コンストラクタを使用しています: 'new Date(dateString)' –

0

あなたが戻って取得ISO文字列がmoment.jsを使用して、あなたの好みに変更することができます。そのライブラリを使用すると、必要な日付を表示できます。

関連する問題