Ticket #2393 (closed バグ指摘: 修正済)

Opened 7 years ago

Last modified 6 years ago

定休日にありえない日付で登録できます

Reported by: m_uehara Owned by: pineray
Priority: Milestone: EC-CUBE2.13.3
Component: 管理画面 Version: 2.13.0 β
Keywords: Cc:
修正済み: yes

Description

管理画面>基本情報管理>定休日管理 の日付に「2月30日」などのありえない日付を設定できます。

Change History

comment:1 Changed 7 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.13.0 to EC-CUBE 2.13.1

comment:2 Changed 7 years ago by m_uehara

  • Milestone changed from EC-CUBE 2.13.1 to EC-CUBE 2.13.2

comment:3 Changed 6 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.13.2 to EC-CUBE2.13.3

comment:4 Changed 6 years ago by pineray

  • Owner changed from somebody to pineray
  • 修正済み set
  • Status changed from new to assigned

r23433 で対応しました。

comment:5 Changed 6 years ago by shutta

r23433 の、

        // 閏年への対応
        for ($i = 0; $i < 4; $i++) {
            if (checkdate($arrForm['month'], $arrForm['day'], $year + $i)) {
                $valid_date = true;
                continue;
            }
        }

のあたりですが、単純に2月29だけ通すようにした方が分かり易くないでしょうか?
その上で、それ以外の日付を、妥当な日付かどうかチェックするようにするとか。

また、このコードを生かすなら、100で割り切れる年は平年になるので、ループ回数は8回にしないと完全ではないかと思います。
ただ、発現するのは、2097年あたりの話にはなりますが。。。

comment:6 follow-up: ↓ 7 Changed 6 years ago by pineray

r23434 で処理を変更しました。

2月29日の場合はチェックしなくても妥当だと判断すれば良いだけでした。

comment:7 in reply to: ↑ 6 Changed 6 years ago by shutta

pineray への返信

r23434 で処理を変更しました。

2月29日の場合はチェックしなくても妥当だと判断すれば良いだけでした。

早速のご対応恐れ入ります。
処理の意図が分かり易くなりました。ありがとうございました。

comment:8 Changed 6 years ago by kim

  • Status changed from assigned to closed
  • Resolution set to 修正済

pineray 様 shutta 様

ありがとうございます。

こちら対応クローズさせていただきます。

Note: See TracTickets for help on using tickets.