Tutorial
この記事の読了時間:約1分33秒
前々から疑問に思いつつ具合悪いなーと思っていた「JavaScriptのDateオブジェクトで、month系の値が0から始まるクソ仕様」について、ついさっき、ふと理解に至ったので勢いでシェアしちゃいます。
アレだよアレ、「文化の違い」ってヤツだな。
まずは下記、例文をどぞ。
var d = new Date("May 16, 2013"); console.log(d.getDate()); // 16 → そらそうや。 console.log(d.getMonth()); // 4 → ファッ!?
おいおいMayは5月やろがい!
、、、そう、getDateはちゃんと1から始まるのに、getMonthは0から始まりよる!
なんでこんなコトしはるの?
日本では月度を指す場合、おおよその場合「1月」「2月」「3月」と表記します。
数字がしっかり入ってます。
But!英語圏では「January」「February」「March」と言いますよね。
Oh!数字なぞどこにも見当たらない!
これは日本語的な感覚で言うと「睦月」「如月」「弥生」みたいな感じかと思うんですが、こういう表記だとイマイチ「数字と月度の関連性」が見えにくくなります。
もしくは、日本的な感覚での「曜日」に近いのかなと。
週の始まりを日曜とした場合、それが返り値などで[0]とされてもさほど違和感がないように。
数ではなく語で月度を認識することが日常である英語圏の方々に作られたってコトが、こーゆートコに潜んでるんですね。
関連する記事
同じカテゴリーの記事
yybs より:
2013/06/01 9:10 AM
// 4 → ファッ!?
ホモはお帰り下さい。
技術系ブログなのに汚い言葉を使うのはやめたほうがいいかと。
wants より:
2020/12/03 11:22 AM
ノンケは性的マイノリティを弾圧することにしか脳が無いのか…
Name より:
2013/05/17 7:59 AM
文化の違いというより最初に普及した言語がその仕様だったため後継の言語の多くが追従しただけです
英語圏でも不満の声は当然あります