JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

MySQLの日付をJavaScriptの日付に変換する方法をわかりやすく解説

MySQLから取得した日付文字列(例:2017-12-31 11:55:17)をJavaScriptのDateオブジェクトに変換するには、Date.parseメソッドを使用するのが一般的です。この記事では、具体的な変換手順とサンプルコードを紹介します。

ハイフンをスラッシュに置き換える理由

MySQLの日付形式は「YYYY-MM-DD HH:MM:SS」ですが、ブラウザによってはハイフン区切りの日付文字列を正しく解析できない場合があります。特にSafariなど一部のブラウザでは「Invalid Date」エラーが発生することがあるため、replaceメソッドでハイフン(-)をスラッシュ(/)に置き換えてからDate.parseに渡すのが安全です。

サンプルコード

以下のコードを実行すると、MySQLの日付をJavaScriptの日付に変換できます。

<!DOCTYPE html>
<html>
<body>
<script>
var MySQL_date = '2017-12-31 11:55:17';
document.write("MySQL Date: " + MySQL_date);

var jsDate = new Date(Date.parse(MySQL_date.replace(/[-]/g, '/')));
document.write("<br>JavaScript Date: " + jsDate);
</script>
</body>
</html>

実行結果

MySQL Date: 2017-12-31 11:55:17
JavaScript Date: Sun Dec 31 2017 11:55:17 GMT+0530 (India Standard Time)

コードのポイント解説

  • replace(/[-]/g, '/'): 日付文字列内のすべてのハイフンをスラッシュに置き換え、どのブラウザでも正しく解析できる形式にします。
  • Date.parse(): 日付文字列を解析し、1970年1月1日00:00:00 UTCからの経過ミリ秒数を返します。
  • new Date(): 経過ミリ秒数をもとに、JavaScriptのDateオブジェクトを生成します。

なお、出力される日付の表示は実行環境のタイムゾーンに依存します。上記の例ではインド標準時(GMT+0530)で表示されていますが、日本の環境ではGMT+0900(日本標準時)として表示されます。

  1. INSERTクエリで米国式の日付形式をMySQL形式に変換する方法

    STR_TO_DATE()関数とはMySQLでは、STR_TO_DATE()関数を使用することで、INSERTクエリの中で米国式の日付形式(例:01-31-2012)をMySQL標準の日時形式(例:2012-01-31)に変換できます。まずは、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, ShippingDatetime varchar(200) ); Query OK, 0 rows affected (1.04 sec)INS

  2. 【MySQL】INT型のyyyymmdd形式の数値を日付(DATE)に変換する方法

    MySQLでは、INT型で保存された「yyyymmdd」形式の数値(例:20190108)を日付型に変換したいケースがよくあります。このような場合、DATE()関数を使うことで簡単に変換できます。本記事では、実際にテーブルを作成し、サンプルデータを用いてDATE()関数による変換手順を解説します。1. サンプルテーブルの作成まず、INT型のカラムを持つテーブルを作成します。mysql> create table DemoTable ( Number int ); Query OK, 0 rows affected (0.48 sec)2. サンプルデータの挿入INSERT文を使っ