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 の フォロー」 お願いします!!
