0

私が持っているタイムスタンプから日付を取得しようとしています(これは2012-08-31T18:30:00、日付ピッカーからの形式:、のようなものです)

   var value = "2012-08-31T18:30:00";

   var date = new Date(value);

this(date)の結果は次のとおりです。Sat Sep 01 2012 00:00:00 GMT+0530 (India Standard Time)

ここでDate()、関数は指定された日付に日を追加しています。さまざまな入力に対してこれを試しましたが、常に1日を追加した結果が得られます。グーグルを試してStackoverflowも検索しましたが、有効な回答が得られませんでした。なぜそれが起こっているのか、そしてこれを解決する方法を誰かに教えてもらえますか?

ありがとう、リスワン

4

4 に答える 4

1

価値を失っているのはあなたのローカルタイムゾーンです。UTC の詳細については、こちらをご覧ください。

によって返される値はtoUTCString、UTC タイム ゾーンのアメリカ英語で読み取り可能な文字列です。戻り値の形式は、プラットフォームによって異なる場合があります。最も一般的な戻り値は、RFC-822 日付スタンプのわずかに更新されたバージョンである RFC-1123 形式の日付スタンプです。

var value = "2012-08-31T18:30:00";
var date = new Date(value);
date = date.toUTCString()

編集

あなたが投稿したコメントから私が収集できるものは、この例のようなものを探しているかもしれません:

var value = "2012-08-31T18:30:00"; //string value
var dateTime = value.split("T"); //split on T

var date = dateTime[0]; 
date = new Date(date); //set the date

var time = dateTime[1];
time = time.split(":"); //get the time into an array

//use set hours to set the time to 18:30:00:00 (hh:mm:ss:mm)
date.setHours(time[0], time[1], time[2], 0)

console.log(date);
于 2012-10-03T13:37:59.973 に答える
0

タイムスタンプの値は GMT であるためDate()、ローカルのタイムスタンプを返します。

date.toGMTString()GMT 形式で保持するために使用します。

于 2012-10-03T13:35:58.717 に答える
0

Sat Sep 01 2012 00:00:00 GMT+0530 GMT + 5h30 です

そして、それは実際には2012-08-31T18:30:00プラス5h30です

于 2012-10-03T13:36:52.250 に答える
0

「2012-08-31T18:30:00」は、グリニッジ標準時 (GMT) / UTC を指します。

"2012-08-31T18:30:00" + India (UTC+5:30) = Sat Sep 01 2012 00:00:00 GMT+0530 (India Standard Time)
于 2012-10-03T13:35:05.603 に答える