1. ホーム
  2. javascript

[解決済み] MySql の DateTime スタンプを JavaScript の Date 形式に変換する

2022-04-23 20:15:27

質問

MySQLの datetime のようなデータ型の値です。 YYYY-MM-DD HH:MM:SS をパースするか、JavaScript の Date() 例えば、Date('YYYY, MM, DD, HH, MM, SS)のような関数です。

ありがとうございました。

解決方法は?

ここで紹介されている回答の中には、複雑すぎるものや、うまくいかないものもあります(少なくとも、すべてのブラウザでは)。 一歩下がってみると、MySQL のタイムスタンプは、時間の各要素が Date() のコンストラクタを使用します。

必要なのは、文字列を非常に単純に分割することだけです。

// Split timestamp into [ Y, M, D, h, m, s ]
var t = "2010-06-09 13:12:01".split(/[- :]/);

// Apply each element to the Date function
var d = new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));

console.log(d);
// -> Wed Jun 09 2010 14:12:01 GMT+0100 (BST)

警告: これは、MySQL サーバが UTC 日付を出力していることを前提としています (これがデフォルトで、文字列にタイムゾーンのコンポーネントがない場合は推奨されます)。