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

実は、指定した期間だけ表示したいと考えております。
下記のようにすれば、指定した日、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 'あいうえお';
}
・・・

このQ&Aに関連する最新のQ&A

PHP 時刻」に関するQ&A: PHP mysql 時刻表示方法

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に関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

Q文字列から、特定の文字を削除したい

アンケートで入力された値を受け取り、メールで送信しているのですが、受け取った値から、特定の文字列を削除することは可能でしょうか?

例えば電話番号の入力の場合、
03-xxxx-xxxx →03xxxxxxxx
077-xxx-xxxx →077xxxxxxx
のように、-(ハイフン)が入力されていたら、-を削除した文字列に置換してメール送信したいのです。
入力する時に、3つのテキストエリアに分けるのは諸事情でできないので、特定の文字を削除する関数か処理方法がありましたら、教えていただきたいです。
よろしくお願いします。

Aベストアンサー

str_replace
http://itbtech.itboost.co.jp/man/php_man/function.str-replace.html

<?php
$orig_telno = "03-xxxx-xxxx";

$telno = str_replace("-", "", $orig_telno);
echo $telno;

03xxxxxxxx

“PHP 文字列” あたりをキーワードに検索すれば
そんなに難しいものでもないような。

QCSSでborderの長さを指定、または可変にしたい。

下記のように指定していますが、これだと横幅いっぱいに下の線が表示されてしまいます。

文字なりの長さ、または指定のピクセル数にしたいのですが、どのようにしたらよいでしょうか。

h3{
border-width : 0px 0px 1px 5px;
border-style : solid ;
border-color : #FF3333;
padding-left : 5px;
}

Aベストアンサー

borderの長さはそのボックスの大きさですから、ボックスの大きさを指定する事になります。
h3{
width:???px;
border-width : 0px 0px 1px 5px;
border-style : solid ;
border-color : #FF3333;
padding-left : 5px;
}

また、文字数(ボックスの内容)に合わせたい場合は、ボックスを浮動化(float)する等の方法もありますが・・・そのボックスの周りへ影響が出たり、ブラウザ毎にバグや実装の違いなどが比較的多く、扱いが面倒になるのであまりおすすめできません。

HTMLの方も修正する方法でもよければ

<h3><span>××○○</span></h3>
のようにspanで囲い、スタイルをspanに対して指定する方法もあります。

h3 span{
border-width : 0px 0px 1px 5px;
border-style : solid ;
border-color : #FF3333;
padding-left : 5px;
}

borderの長さはそのボックスの大きさですから、ボックスの大きさを指定する事になります。
h3{
width:???px;
border-width : 0px 0px 1px 5px;
border-style : solid ;
border-color : #FF3333;
padding-left : 5px;
}

また、文字数(ボックスの内容)に合わせたい場合は、ボックスを浮動化(float)する等の方法もありますが・・・そのボックスの周りへ影響が出たり、ブラウザ毎にバグや実装の違いなどが比較的多く、扱いが面倒になるのであまりおすすめできません。

HTMLの方も修正する方法でもよけ...続きを読む

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

Q宜しくお願いします。

宜しくお願いします。
mix~max値の間、発行したクエリーからの値を配列に入れたいのですが、どうもFor文中にmin,max値は届いているのですが,$resultに値が入りません。
エラーからしてSQLで行っている変数処理に$iの値が届いてない感じがするのですが、下記のソースを見て頂いて、疑わしき点などご指摘、ご教授いただけませんでしょうか。

どうぞ宜しくお願いします。


--エラー文ここから--->
Catchable fatal error: Object of class stdClass could not be converted to string in ...




--ソースここから--->

$min = h($r -> x);
$max = h($s -> y);
for($i=$min ; $i<= $max; $i++){
$search = sprintf("SELECT id FROM Sheet WHERE no='%d'",$i);
$q_search = mysql_query($search);
$result = mysql_fetch_object($q_search);
echo $result;
}

宜しくお願いします。
mix~max値の間、発行したクエリーからの値を配列に入れたいのですが、どうもFor文中にmin,max値は届いているのですが,$resultに値が入りません。
エラーからしてSQLで行っている変数処理に$iの値が届いてない感じがするのですが、下記のソースを見て頂いて、疑わしき点などご指摘、ご教授いただけませんでしょうか。

どうぞ宜しくお願いします。


--エラー文ここから--->
Catchable fatal error: Object of class stdClass could not be converted to string in ...




--ソースここから...続きを読む

Aベストアンサー

PHPあまり詳しくないので間違っていたらすいません。


>$result = mysql_fetch_object($q_search);
でresultはobject型で代入しておりそれを表示するときにString型に変換できていないのが原因かとおもわれます。

参考URL
mysql-query
http://php.net/manual/ja/function.mysql-query.php

mysql-fetch-array
http://php.net/manual/ja/function.mysql-fetch-array.php

mysql_fetch_object
http://phpspot.net/php/man/php/function.mysql-fetch-object.html

Qページ読み込み時に自動的にsubmitさせる方法

過去のPHPでの質問
http://www.okweb.ne.jp/kotaeru.php3?q=483327
の中で出てきた

>hiddenでデータ定義しておいて
>Javascriptでページ読み込み時に自動的にsubmitさせたらいいかも。

POSTでデータを送るためにこれを実現したいと思っているのですが自動的にsubmitさせる方法がわかりません。

ご存知の方がおられましたらアドバイス宜しくお願いします。

Aベストアンサー

<BODY onLoad="document.F.submit();">
とやれば、このファイルがロードされた時に、
このファイル内の
<FORM NAME=F>~</FORM>
と定義されたFORMの内容がsubmitされると思いますが・・・。

QPHPで偶数と奇数を判断するには

宜しくお願いします。
一覧表示等をする時に見やすいように一行ずつテーブルの色を変えたりすると思うのですが、これをPHPのfor文で自動的に交互に色を変えるようなプログラムを作ろうと思っております。for文で繰り返し処理場合、例えば、

for($n = 0; $n < 100; $n++)
{
 if($n = 偶数)
 {
 $bgcolor = "#ff0000";
 }
 elseif($n = 奇数)
 {
 $bgcolor = "#0000ff";
 }
}

といった形で交互に色を変るには、偶数/奇数の判断が出来ないと無理だと思うのですが、何か良い方法は無いでしょうか?

Aベストアンサー

if($n % 2 == 0) {
 偶数の処理;
} else {
 奇数の処理;
}

%は、割り算をした、余りです。
例)
3を2で割った余りは1
4を2で割った余りは0 

ANDで求める方法もあります。

またこの場合は、一度偶数で判定すれば、奇数の判定は不要です。

Qphpにcssを適応させたいのですが?

phpで出力させた結果をブラウズするのに、css指定させたいのですが?

できるのでしょうか?

Aベストアンサー

PHPだから特別な考えはしなくて良いです

PHPはあくまでも、サーバー側で動いて、その結果を出力させるだけです

つまり出力させたHTMLにごくごく普通にCSSを適用させれば良いだけです
又、テクニックとしCSSそのものをPHPで処理させることも可能ですよ

例えば
---------------index.html(又はindex.php)のhead内
<link rel="stylesheet" type="text/css" href="stylecss.php"/>
---------------

------------stylecss.php
BODY {
background-color: #<?php echo $background; ?>;
margin: 0px;
}

A:link {
color: #<?php echo $acollar; ?>;
text-decoration:none;
}
-----------
のようにしてしまって、CSSそのものを動的に生成することも可能です

PHPだから特別な考えはしなくて良いです

PHPはあくまでも、サーバー側で動いて、その結果を出力させるだけです

つまり出力させたHTMLにごくごく普通にCSSを適用させれば良いだけです
又、テクニックとしCSSそのものをPHPで処理させることも可能ですよ

例えば
---------------index.html(又はindex.php)のhead内
<link rel="stylesheet" type="text/css" href="stylecss.php"/>
---------------

------------stylecss.php
BODY {
background-color: #<?php echo $background; ?>;
margin: 0px;
...続きを読む

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

Qテーブルの最後(最新)のレコードを抽出したい

宜しくお願いします。
PHP MYSQL の組み合わせで使っています

以下のようにして、最後のレコードを取り出したいのですが
まったく違う事をしているのかもしれません。

$sql =" select * from テーブル where フィールド='max' " ;

フィールドはauto_incrementで番号を振っています。
これで最大のつもりなのですが・・・。

他にも、レコードを入れた時間も記録したフィールドがあるのですが
どうしてよいか?判りません。

テーブルの最新のレコードを出したいのです。
**その中の一つのフィールドを取り出すのですが、
  それはうまくいっているみたいです 
  (max の所に数字を入れると表示します)

お手数かけますが、どなたかご教授お願いいたします。

Aベストアンサー

#2回答者です。

MySQL 4.1以前(サブクエリを使えない)なら、以下のような方法が考えられます。

select * from 表名
order by 列名 desc limit 1


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報