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

よろしくお願い申し上げます。

実は、指定した期間だけ表示したいと考えております。
下記のようにすれば、指定した日、1日の表示はできます。

もし3日間連続で表示したい場合、確か($today == '1223'|$today == '1224'|$today == '1225')とすれば良かったと思うのですが、この指定した期間が1ヶ月(30日)あったら、30日分入力するというのは骨の折れる作業となります。

そこで、毎年4月1日~4月30日の間だけ同じ内容を表示させて、それ以外の期間は非表示となるような命令にしたいと思っています。プログラムなのでそう言う方法はあるかと思いますが、いくら探しても探し方が悪いのか見つかりませんでした。

お手数をおかけしますが何卒よろしくお願いします。


$today= date("md"); //月日だけを求める
if ($today == '0401'){
echo 'あいうえお';
}
elseif ($today == '0402') {
echo 'あいうえお';
}
elseif ($today == '0403') {
echo 'あいうえお';
}
・・・

A 回答 (4件)

>1ヶ月もなのですが、基本的には◯月◯日~◯月◯日までと自由に期限を決めたいと思っています。


>その決めた期間中のみ表示するといったようなことです

でしたら日付を比較ができる Unix タイムスタンプに変換して
以下のようにしてはいかがでしょうか


$now = time();

$start = mktime( 0, 0, 0, 4, 1,2011); // 2011年4月1日 0時0分0秒から
$end = mktime( 0, 0, 0, 5, 1,2011); // 2011年5月1日 0時0分0秒まで

if($now >= $start && $now < $end){
echo 'あいうえお';
}


time
(PHP 4, PHP 5)
time — 現在の Unix タイムスタンプを返す
http://jp.php.net/manual/ja/function.time.php

mktime
(PHP 4, PHP 5)
mktime — 日付を Unix のタイムスタンプとして取得する
http://jp.php.net/manual/ja/function.mktime.php
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。早々試し、できました。
本当にどうもありがとうございました。
その他のご回答頂いた皆さんもありがとうございました。ゴールを迎えられました。


今回は、毎年くり替えしたいので下記のように修正しました。

<?php
$now = time();

$start = mktime( 0, 0, 0, 4, 25); /*4月25日から始まり*/
$end = mktime( 0, 0, 0, 4, 27); /*4月26日で終了する*/

if($now >= $start && $now < $end){
echo 'abcd';
}
?>

お礼日時:2011/04/26 17:53

1ヶ月分なら、月だけを見れば良い。

それと文字の比較部分も直した方がいい。
$month= date("m");
if ($month === '04'){
echo 'あいうえお';
}

この回答への補足

ご回答ありがとうございます。
質問の文章が悪かったようです。分かりにくい文章でお手数をおかけしました。

1ヶ月もなのですが、基本的には◯月◯日~◯月◯日までと自由に期限を決めたいと思っています。
その決めた期間中のみ表示するといったようなことです。

補足日時:2011/04/24 09:00
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2011/04/26 18:12

とりあえず変更箇所が少ないものを



$tomonth= date("m"); //月だけを求める
if ($tomonth == '04'){
echo 'あいうえお';
}



date
(PHP 4, PHP 5)
date — ローカルの日付/時刻を書式化する
http://jp.php.net/manual/ja/function.date.php

この回答への補足

ご回答ありがとうございます。
質問の文章が悪かったようです。分かりにくい文章でお手数をおかけしました。

1ヶ月もなのですが、基本的には◯月◯日~◯月◯日までと自由に期限を決めたいと思っています。
その決めた期間中のみ表示するといったようなことです。

補足日時:2011/04/24 09:00
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2011/04/26 18:11

<



>
で大小判定すればいいと思うけど。

この回答への補足

比較演算子 や 理演算子 あたりを使えば出来るんですよね。

「月日を調べて、それが指定した期間内であれば表示。それ以外であれば非表示。」といった命令になるとおもうのですが、そのソースが書けません。


まず、指定する期間を書けばいいのでしょうか。
$day1 =
$day2 =
$today= date("md");
とした場合、指定日の表現がわかりません。
4月1日を指定したい場合、1April ではなさそうですよね。

次に
if ($daiy1 < $today || $day2 > $today){
echo 'あいうえお';
}

みたいな感じなんでしょうか。
無茶苦茶かもしれませんが、わたくしの頑張った限界です。

補足日時:2011/04/24 09:41
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2011/04/26 18:12

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