9

JavaScript では、日付を として指定すると、それをローカル タイムゾーンとして解析するためにMM/DD/YYYY使用できます。new Date()

>>> new Date('01/01/1970')
Date {Thu Jan 01 1970 00:00:00 GMT-0500 (EST)}

ただし、日付を として指定するYYYY-MM-DDと、UTC タイムゾーンで日付を指定していると見なされます。

>>> new Date('1970-01-01')
Date {Wed Dec 31 1969 19:00:00 GMT-0500 (EST)}

「YYYY-MM-DD」の日付を解析するときにローカル タイムゾーンを使用するように日付パーサーに指示する簡単な方法はありますか? .replace(/^(\d{4})-(\d{2})-(\d{2})$/, '$2/$3/$1')または、最初に修正するために使用する必要がありますか?

4

2 に答える 2

2

次の関数はまさにあなたが望むことを行うので、「YYYY-MM-DD」の形式で文字列を渡すことができ、ローカル タイム ゾーンの Date オブジェクトを返します。

function yyyymmddToLocalDate(isoString) {
  const [year, month, day] = isoString.split('-');
  return new Date(year, month - 1, day);
}

たとえば、ブラジルにいて電話をかけるとyyyymmddToLocalDate('2020-10-07')、戻ってきますWed Oct 07 2020 00:00:00 GMT-0300 (Brasilia Standard Time)

于 2020-10-04T20:44:11.683 に答える