Date オブジェクトを お好みのスタイルに
Date.prototype.format = function(str) { var zero = /%d|%i|%m|%H|%I|%M|%S/; var date = { "%a" : (["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[this.getDay()], "%A" : (["Sunday", "MOnday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"])[this.getDay()], "%b" : (["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[this.getMonth()], "%B" : (["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"])[this.getMonth()], "%C" : this.getFullYear().toString().slice(0, 2), "%d" : this.getDate(), "%H" : this.getHours(), "%I" : (this.getHours() > 12) ? this.getHours() - 12 : this.getHours(), "%m" : this.getMonth() + 1, "%M" : this.getMinutes(), "%p" : (this.getHours() > 12) ? "PM" : "AM", "%P" : (this.getHours() > 12) ? "pm" : "am", "%s" : this.getTime(), "%S" : this.getSeconds(), "%u" : this.getDay() + 1, "%w" : this.getDay(), "%y" : this.getYear(), "%Y" : this.getFullYear(), "%z" : (this.toLocaleString().match(/\+\d{4}/))[0], "%%" : "%%" } return str.replace( /(%[\w%])/g, function(e) { if(e.match(zero)) { return (date[e] < 10) ? "0" + date[e] : date[e]; } else { return date[e]; } } ); }
使いかた
var date = new Date(); date.format("%Y/%m%d (%a) %H:%M:%S") // 2007/02/21 (Wed) 13:50:00
上のスクリプトと組み合わせればなかなかいい感じになる。
穴がありそうだけど
修正
toLocaleFromat と "%ほげ” をあわした。ただし足りないもの多数。
修正 2/24 11:50
"%" 自体も使えるように。