JavaScript日付をMySQLへ変換
JavaScriptの日時をMySQLの日時に変換する
JavaScriptで取得した日時をMySQLのデータベースに保存する際に、適切なフォーマットに変換する必要があります。MySQLの日時は通常、YYYY-MM-DD HH:MM:SS
の形式で保存されます。
JavaScriptの日時オブジェクトを取得する
JavaScriptでは、Date
オブジェクトを使用して現在の日時を取得できます。
const now = new Date();
日時をMySQLのフォーマットに変換する
JavaScriptの日時オブジェクトは、toISOString()
メソッドを使用してISO 8601形式に変換できます。この形式はMySQLでもサポートされています。
const mysqlDateTime = now.toISOString();
MySQLに保存する
変換された日時をMySQLのクエリに挿入します。
const query = `INSERT INTO your_table (datetime_column) VALUES ('${mysqlDateTime}')`;
例
const now = new Date();
const mysqlDateTime = now.toISOString();
const query = `INSERT INTO your_table (created_at) VALUES ('${mysqlDateTime}')`;
// MySQLにクエリを実行する
注意
- 日付型
MySQLにはさまざまな日付型があります(DATE
,DATETIME
,TIMESTAMP
など)。使用する型に応じて、適切な変換方法を選択してください。 - タイムゾーン
JavaScriptの日時オブジェクトはブラウザのタイムゾーンに基づいています。MySQLのタイムゾーン設定に注意してください。 - セキュリティ
SQLインジェクションを防ぐために、プレースホルダーを使用することを推奨します。
const now = new Date();
const mysqlDateTime = now.toISOString();
const query = `INSERT INTO your_table (datetime_column) VALUES ('${mysqlDateTime}')`;
const now = new Date();
const mysqlDateTime = now.toISOString();
const query = `INSERT INTO your_table (created_at) VALUES ('${mysqlDateTime}')`;
// MySQLにクエリを実行する
toLocaleString()メソッドを使用する
toLocaleString()
メソッドは、地域設定に基づいて日時をフォーマットします。MySQLのフォーマットに合わせるために、適切なオプションを指定します。
const mysqlDateTime = now.toLocaleString('en-US', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
ライブラリを使用する
日付と時刻の操作を簡素化するためのライブラリを使用することもできます。例えば、Moment.jsやLuxonは、日付のフォーマットや変換を容易に行うための機能を提供しています。
// Moment.jsを使用する場合
const moment = require('moment');
const mysqlDateTime = moment(now).format('YYYY-MM-DD HH:mm:ss');
// Luxonを使用する場合
const { DateTime } = require('luxon');
const mysqlDateTime = DateTime.fromJSDate(now).toISO();
カスタム関数を作成する
特定のフォーマットが必要な場合は、カスタム関数を作成して日時をフォーマットすることができます。
function formatDate(date) {
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const ho urs = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, ' 0');
const seconds = date.getSeconds().toString().padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
co nst mysqlDateTime = formatDate(now);
javascript mysql