JavaScript で DateオブジェクトからW3C-DTF文字列 へ変換する関数。
var g = g || {}; g.date = g.date || {}; g.date.W3CDTF = {}; /** * DateオブジェクトからW3C-DTFフォーマット文字列へ変換します。 * @param {Date} date Dateオブジェクト * @return {string} W3C-DTFフォーマット文字列 */ g.date.W3CDTF.stringify = function (date) { // 数値をパディングする関数 var paddingNumber = function (number, length) { var source = String(number); var count = length - source.length; if (count < 0) { return source; } while (count--) { source = '0' + source; } return source; }; // 必要なデータを準備 var year = date.getUTCFullYear(); var month = date.getUTCMonth() + 1; var day = date.getUTCDate(); var hour = date.getUTCHours(); var minute = date.getUTCMinutes(); var second = date.getUTCSeconds(); var millisecond = date.getUTCMilliseconds(); var timezone = 'Z'; var text = ''; // W3C-DTFの YYYY-MM-DDThh:mm:ss.sTZD 形式文字列になるよう結合 text += year; text += '-'; text += paddingNumber(month, 2); text += '-'; text += paddingNumber(day, 2); text += 'T'; text += paddingNumber(hour, 2); text += ':'; text += paddingNumber(minute, 2); text += ':'; text += paddingNumber(second, 2); text += '.'; text += paddingNumber(millisecond, 3); text += timezone; return text; };
以前の記事「W3C-DTF形式文字列をDateオブジェクトへ変換」と対をなす感じ。 必要かどうかは別にして、片側だけってのが気持ち悪かったので作ってみた。
ちなみに、実行結果は次のような感じ。 Date列は「(new Date).toLocaleString()」をぶち込んで、 string列は「g.date.W3CDTF.stringify(new Date())」をぶち込んでる。 (まぁ、見ても当然すぎて何のおもしろみもにけれど…何となく画像を載せたかった^^;)
※コードに間違いがあったので修正しました(2012.09.05)最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!