[Tep-j-general] Re: 生年月日の編集エラー

Back to archive index

hamada bungu****@leo*****
2005年 5月 27日 (金) 08:58:16 JST


こんにちわ。

On Thu, 26 May 2005 19:31:42 +0900
Seiji Sogabe <sogab****@alles*****> wrote:

> 私も同じ様なことを考えたのですが、1970/111/23とかいれると、やはり同様のエラーに
> なってしまうので、

やっぱり例外処理が不十分ですかねぇ?(^_^;)

実は当方が最初に考えたのは「/で分離」、つまり

list($y, $m, $d) = split('[/.-]', tep_date_raw($dob));

if (checkdate($m, $d, $y)) {

↑こんな感じ(上記はついでに「-」「.」区切りにも対応)だったんすが、

・判定条件にも手を入れなきゃいけない
・変数名がダブってないかのチェックがめんどくさい

ということで、1行で済む「手っ取り早い方法」で済ましちゃったというような
経緯があったりなかったり…(^^;;

> 上記のように、正規表現があっているかわかりませんが、最初からYYYY/MM/DD以外は通常のエラーで
> はねるほうがいいと思います。

「2005/123/456」はデータ的に間違ってます(お客さまの意図してる「正しいデー
タ」が解らない)のでハネるべきだと思いますが、「2005/1/2」は

「アルゴリズム的には間違ってるがデータとしては正しい」

訳ですから、これまでハネちゃうのはちょっと不親切な気も。

はまだ






Tep-j-general メーリングリストの案内
Back to archive index