日付関数 dateクラスの挙動
ほら、前回の記事
unixタイムの取得方法 - 手が震えたらBARに行こう
で使ったdateクラスってあるやん?
あれって、実は、引数をどう設定するかで挙動が変わります。
知ってた速報の人ゴメン。
そんな時は、ジャックダニエルとか、甘いウィスキーを飲んで、見ずに流してください。
水だけに
あ、ごめん。石投げないで。すいません。すいません。
さて、本題に入りますが、
※ダブルクオーテーションは、ダブルクオーテーションのぶん中に含めるのがめんどくさいので、<>で表しました。
CoffeeScriptバージョン
console.log "new Date() -> #{new Date()}" console.log "new Date(1000000000000) -> #{new Date(1000000000000)}" console.log "new Date(1999, 12, 31) -> #{new Date(1999, 12, 31)}" console.log "new Date(1999, 12, 31, 23, 59, 59) -> #{new Date(1999, 12, 31, 23, 59, 59)}" console.log "new Date(<Dec 31, 1999 23:59:59>) -> #{new Date("Dec 31, 1999 23:59:59")}" console.log "new Date(<December 31, 1999 23:59:59>) -> #{new Date("December 31, 1999 23:59:59")}"
JavaScriptバージョン
console.log("new Date() -> " + (new Date())); console.log("new Date(1000000000000) -> " + (new Date(1000000000000))); console.log("new Date(1999, 12, 31) -> " + (new Date(1999, 12, 31))); console.log("new Date(1999, 12, 31, 23, 59, 59) -> " + (new Date(1999, 12, 31, 23, 59, 59))); console.log("new Date(<Dec 31, 1999 23:59:59>) -> " + (new Date("Dec 31, 1999 23:59:59")));
結果
new Date() -> Thu Nov 28 2013 11:09:52 GMT+0900 (東京 (標準時)) new Date(1000000000000) -> Sun Sep 09 2001 10:46:40 GMT+0900 (東京 (標準時)) new Date(1999, 12, 31) -> Mon Jan 31 2000 00:00:00 GMT+0900 (東京 (標準時)) new Date(1999, 12, 31, 23, 59, 59) -> Mon Jan 31 2000 23:59:59 GMT+0900 (東京 (標準時)) new Date(<Dec 31, 1999 23:59:59>) -> Fri Dec 31 1999 23:59:59 GMT+0900 (東京 (標準時)) new Date(<December 31, 1999 23:59:59>) -> Fri Dec 31 1999 23:59:59 GMT+0900 (東京 (標準時))
ちなみに、数値で返るようにgettimeしてみた結果がこちら
ソース
CoffeeScript
console.log "(new Date()).getTime() -> #{(new Date()).getTime()}" console.log "(new Date(1000000000000)).getTime() -> #{(new Date(1000000000000)).getTime()}" console.log "(new Date(1999, 12, 31)).getTime() -> #{(new Date(1999, 12, 31)).getTime()}" console.log "(new Date(1999, 12, 31, 23, 59, 59)).getTime() -> #{(new Date(1999, 12, 31, 23, 59, 59)).getTime()}" console.log "(new Date(<Dec 31, 1999 23:59:59>)).getTime() -> #{(new Date("Dec 31, 1999 23:59:59")).getTime()}" console.log "(new Date(<December 31, 1999 23:59:59>)).getTime() -> #{(new Date("December 31, 1999 23:59:59")).getTime()}"
結果
(new Date()).getTime() -> 1385605899033 (new Date(1000000000000)).getTime() -> 1000000000000 (new Date(1999, 12, 31)).getTime() -> 949244400000 (new Date(1999, 12, 31, 23, 59, 59)).getTime() -> 949330799000 (new Date(<Dec 31, 1999 23:59:59>)).getTime() -> 946652399000 (new Date(<December 31, 1999 23:59:59>)).getTime() -> 946652399000
ってな感じになります。
結果から見てみると、
このパターンだと、現在時刻を返してくれるみたいですね。
new Date() -> Thu Nov 28 2013 11:09:52 GMT+0900 (東京 (標準時)) (new Date()).getTime() -> 1385605899033
ですよねーな感じ
new Date(1000000000000) -> Sun Sep 09 2001 10:46:40 GMT+0900 (東京 (標準時)) (new Date(1000000000000)).getTime() -> 1000000000000
もちろん、日付で入力したものも、いい感じにunixタイムに直してくれたりもします。
new Date(1999, 12, 31) -> Mon Jan 31 2000 00:00:00 GMT+0900 (東京 (標準時)) (new Date(1999, 12, 31)).getTime() -> 949244400000
以下は主に、日付形式でやって来たデータを、unixタイムにも直せるんだぜな感じですね。
new Date(1999, 12, 31, 23, 59, 59) -> Mon Jan 31 2000 23:59:59 GMT+0900 (東京 (標準時)) (new Date(1999, 12, 31, 23, 59, 59)).getTime() -> 949330799000
new Date(<Dec 31, 1999 23:59:59>) -> Fri Dec 31 1999 23:59:59 GMT+0900 (東京 (標準時)) (new Date(<Dec 31, 1999 23:59:59>)).getTime() -> 946652399000
new Date(<December 31, 1999 23:59:59>) -> Fri Dec 31 1999 23:59:59 GMT+0900 (東京 (標準時)) (new Date(<December 31, 1999 23:59:59>)).getTime() -> 946652399000
今日すげー!!!
今日すげー仕事した気がする。