手が震えたらBARに行こう

駄文を吐き出して、今日もなんとか、元気に生きていこうと思います。twitterアカウントは、@tabunmuri255です。よろしくです。

日付関数 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

今日すげー!!!
今日すげー仕事した気がする。