5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

+ JavaScript の質問用スレッド vol.71 +

1 :sage:2009/05/20(水) 10:19:07 ID:???
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレ http://pc11.2ch.net/test/read.cgi/hp/1239686791/l50
[必読]過去スレ全集 http://wing2.jp/~mirrorhenkan/2ch/javascript/
  (ずべて同一)  http://www2.atpages.jp/mirror/2ch/javascript/
          http://usamimi.info/~mirrorhenkan/2ch/javascript/
[必読]ガイド http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-10

64 :Name_Not_Found:2009/05/23(土) 09:40:00 ID:???
Date オブジェクトの日付の範囲って西暦99年以前はダメなのでしょうか?

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Date_Object
ここ↑には「Date オブジェクトの範囲は1970年1月1日(UTC)を基準に -100,000,000日から100,000,000日です。」とあるので、
単純計算で前後約273972年(=100,000,000÷365)を測定できる事になります。

しかし日付チェック関数(http://www.hoge256.net/2007/08/64.html)だと100/1/1以降はOKですが99年以前はプラス1900されているようでダメでした。

function checkDate(year, month, day) {
var d = new Date(year, month - 1, day);
if( d == null ||
d.getFullYear() != year ||
d.getMonth() + 1 != month ||
d.getDate() != day ) {
return false;
};
return true;
};

結果:
1970/1/1 => OK 木
1969/12/31 => OK 水
1000/1/1 => OK 水
999/12/31 => OK 火
100/1/1 => OK 金
99/12/31 => NG (1999/12/31になる)

↓だとgetFullYear は 「1000年から9999年までの日付に対して1995のような4桁の数字を返します。」とありますが、
999年でもtrueでOKでした。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Date/getFullYear

99年以前もOKなメソッドってあるのでしょうか? getUTCFullYear?

65 :Name_Not_Found:2009/05/23(土) 10:07:16 ID:???
setFullYear

66 :64:2009/05/23(土) 23:17:55 ID:???
>>65
ありがとうございます。
99年以前も問題なく動作するようになりました。

function checkDate(year, month, day)
{
var d = new Date(year, month - 1, day);
if(d.getFullYear() != year) d.setFullYear(year);
if( d == null || d.getFullYear() != year || d.getMonth() +1 != month || d.getDate() != day) {
return false;
};
return true;
};


280 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)