JavaScriptでDATETIME型の日付を得る方法
presented by 役に立つかもしれないBlog
JavaScriptで直接PHP+MySQLのスクリプトとやり取りを行いたい場合に日付情報をDATETIME型に整形して送信したい場合があります。 その時の方法をご紹介します。
DateオブジェクトからYYYYMMDD...にして正規表現で変換
やり方は単純。 次のようなやり方でDATETIME型になるまで変換します。
- Dateオブジェクトインスタンスを生成
- getFullYear()等を使って、タイムスタンプ型(YYYYMMDDHHMMSS)の文字列を作る
- 正規表現を使って文字列の置き換え
タイムスタンプ型の文字列を作らずに直接DATETIME型の文字列を作ることもできますが、タイムスタンプ型もあると便利ですよね?
var dt = new Date();
var timestamp = dt.getFullYear()+
(String(dt.getMonth()+101).substr(1,2))+
(String(dt.getDate()+100).substr(1,2)+
(String(dt.getHours()+100).substr(1,2))+
(String(dt.getMinutes()+100).substr(1,2))+
(String(dt.getSeconds()+100).substr(1,2)));
timestamp.match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/);
var datetime = RegExp.$1+'-'+RegExp.$2+'-'+RegExp.$3+
' '+RegExp.$4+':'+RegExp.$5+':'+RegExp.$6;
getMySQLDate()なるものを作ってみる
上記を使いやすい関数にしてみました。 引数の1番目にDateオブジェクトを、2番目の引数に「timestamp」あるいは「datetime」を指定すると、その形式にあった日付文字列を返します。
function getMySQLDate(dt, dtype) {
var timestamp = dt.getFullYear()+
(String(dt.getMonth()+101).substr(1,2))+
(String(dt.getDate()+100).substr(1,2)+
(String(dt.getHours()+100).substr(1,2))+
(String(dt.getMinutes()+100).substr(1,2))+
(String(dt.getSeconds()+100).substr(1,2)));
if (dtype=="timestamp") return timestamp;
timestamp.match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/);
var datetime = RegExp.$1+'-'+RegExp.$2+'-'+RegExp.$3+
' '+RegExp.$4+':'+RegExp.$5+':'+RegExp.$6;
if (dtype=="datetime") return datetime;
}
使用例
var dt = new Date(); var datetime = getMySQLDate(dt, "datetime"); var timestamp = getMySQLDate(dt, "timestamp");
という感じです。 お役に立ちましたでしょうか?
このページに関連のある記事はこちら
- MySQLサーバーでクエリ履歴をログファイルに保存する方法
- MySQLで「ALTER TABLE ... DROP INDEX」すると「Error 150」が出る問題
- タグ機能を実現するための便利なデータベース設計を3つ紹介
- SeleniumでjQueryを利用する
- さくらのVPSのPHP+MySQLを最新のものにアップデート。
- MySQL(innoDB)でリレーション設定時に「インデックスは設定されていません」エラー
- JavaScriptで全角数字を半角数字に変換する方法(おまけつき)
- tableにjQueryのtoggleを使うと幅が100%に広がらない件
- JavaScript+Prototype.jsで右クリックメニューが作れる「Proto.Menu」
- MySQLでRANDOMな数値を得る方法



コメントフォーム