アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpでURLのパラメーターから取得した日付データが以下の条件に合致しているかどうか判別にするにはどうしたらいいでしょうか。

■URL
archive.php?y=2019&m=01

■条件
・パラメータはyがyyyy形式でmがmm形式であること
・2017年01月から現在の月日以前(今が2019年02月なので2019年01月)までであること

最初に6桁の数字かどうか判別するために以下のようにしてみたのですが、

$parameter = $_SERVER["QUERY_STRING"];
parse_str($parameter);
$parameter = $y.$m;

if ((strlen($parameter)) == "6") {
echo "6桁です";
}

if (ctype_digit($parameter)){
echo "数字です";
}

両方をあわせ下記のように書いたのですがエラーになってしまいました。

if ((strlen($parameter)) == "6") and (ctype_digit($parameter)) {
echo "6桁の数字です";
}

また、「日付の範囲指定」をどのようにしたらいいのか分かりません。

よろしくお願い致します。

質問者からの補足コメント

  • 「日付の範囲指定」をこのif文に組み込めるでしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/02/07 18:23

A 回答 (2件)

> 「日付の範囲指定」をこのif文に組み込めるでしょうか。



$yも同じように追加してください。

if (strlen($parameter) == 6 && ctype_digit($parameter) && ($m >= 1 && $m <= 12)) {
}
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2019/02/07 19:58

とりあえず



> if ((strlen($parameter)) == "6") and (ctype_digit($parameter)) {

()があってない。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
if (((strlen($parameter)) == "6") and (ctype_digit($parameter))){
でできました。

お礼日時:2019/02/07 18:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!