Own products

  • 新規事業のアイディア創造機

Tutorial

2013
05/16

JavaScriptのDateオブジェクトのmonth系が0から始まる仕様に溜飲を下げた雨の午後

この記事の読了時間:約133

  • このエントリーをはてなブックマークに追加

前々から疑問に思いつつ具合悪いなーと思っていた「JavaScriptのDateオブジェクトで、month系の値が0から始まるクソ仕様」について、ついさっき、ふと理解に至ったので勢いでシェアしちゃいます。

アレだよアレ、「文化の違い」ってヤツだな。

JavaScriptのDateオブジェクト、month系の仕様

まずは下記、例文をどぞ。

var d = new Date("May 16, 2013");

console.log(d.getDate());
// 16 → そらそうや。

console.log(d.getMonth());
// 4 → ファッ!?

おいおいMayは5月やろがい!

、、、そう、getDateはちゃんと1から始まるのに、getMonthは0から始まりよる!

なんでこんなコトしはるの?

ヒントは「May」にあり!

日本では月度を指す場合、おおよその場合「1月」「2月」「3月」と表記します。

数字がしっかり入ってます。

But!英語圏では「January」「February」「March」と言いますよね。

Oh!数字なぞどこにも見当たらない!

これは日本語的な感覚で言うと「睦月」「如月」「弥生」みたいな感じかと思うんですが、こういう表記だとイマイチ「数字と月度の関連性」が見えにくくなります。

もしくは、日本的な感覚での「曜日」に近いのかなと。

週の始まりを日曜とした場合、それが返り値などで[0]とされてもさほど違和感がないように。

数ではなく語で月度を認識することが日常である英語圏の方々に作られたってコトが、こーゆートコに潜んでるんですね。

すげースッキリした!
  • このエントリーをはてなブックマークに追加

コメント一覧

2 Responses to [JavaScriptのDateオブジェクトのmonth系が0から始まる仕様に溜飲を下げた雨の午後]

Name より:

2013/05/17 7:59 AM

文化の違いというより最初に普及した言語がその仕様だったため後継の言語の多くが追従しただけです
英語圏でも不満の声は当然あります

yybs より:

2013/06/01 9:10 AM

// 4 → ファッ!?

ホモはお帰り下さい。
技術系ブログなのに汚い言葉を使うのはやめたほうがいいかと。

コメントを投稿する

お名前

ご連絡先メールアドレス※非公開

コメント

CAPTCHA


  • このブログのRSSを購読する
  • このブログをtwitterでつぶやく
  • このブログをFacebookで共有する
  • このブログをはてなブックマークで共有する

Favorite feeds

    Contact

    お名前※必須

    ご連絡先メールアドレス

    お問い合わせ内容※必須

    CAPTCHA

    captcha

    Blog parts

    Affiliate