質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

118閲覧

PHPのif文の書き方

tsubakin

総合スコア19

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/12/04 02:24

編集2018/12/04 03:05

if文を書く際に
その月の最初の平日の日以外という内容で書きたいのですが
どのように書けばいいのかわかりますでしょうか?
(????のことろをどのように記載すればよいのか)
※祝日は考えないで、土日以外の月最初の平日
わかりずらいかもなので
例:2018年の12月だとすると12/3(月曜)でなければというように
2018年11月なら11/1(木)でなければ
という感じで土日以外の月の最初の平日の時は表示しないという内容にしたいのです。

$today = date("Y年m月d日");//当日 if($today !== ????){ echo '結果○○です' }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2018/12/04 02:26

祝日を考えるとなると、さらに問題が複雑化しますが(臨時で2019/05/01を祝日にする、という話もありますし)、そのあたりはどうでしょうか?
tsubakin

2018/12/04 02:49

ありがとうございます。とりあえず、祝日は考えない方向でお願いします。(土日以外の月の最初の平日以外)
m.ts10806

2018/12/04 02:56

祝日込みでヒント回答をしてしまっています。要件として質問本文に追記願います。
tsubakin

2018/12/04 03:00

回答ありがとうございます。
guest

回答4

0

date("w")で0から順番に日曜~土曜 が取得できます。
これでひとまず「0または6」が「休日」となります。
ただ、祝日の判定などを挟む必要がありますので、そこを計算することになりますが、
結構複雑なので、そこはプラグインを使ってください。

composerからインストールして利用します。(利用方法はリンク先に書いてあります)
※composerは別途インストールして使えるようにして置いてください
つまり、土日またはisHoliday()であるものが求めたいもの の基準になるかなと。

投稿2018/12/04 02:50

編集2018/12/04 02:51
m.ts10806

総合スコア80852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

検証が微妙ですが、やりかたはいくつか考えられると思います。個人的には2つ目のパターンで最初の平日を求めておいて、今日がその日かどうかを見るのが好みです。

php

1//引数が最初の平日かの判定 2function isFirstweekday($date) { 3 if(intval($date->format('d')) > 3) {return false;} //4日以降は該当しない 4 if(intval($date->format('w')) === 0 || intval($date->format('w')) === 6) {return false;} // 平日でない 5 if(intval($date->format('w')) !== 1 && intval($date->format('d')) !== 1) {return false;} // 月曜でないか1日でなければ該当しない 6 return true; 7} 8 9//ある年・月の最初の平日を求める 10function firstweekdayOf($y, $m) { 11 $first = new DateTimeImmutable("{$y}-{$m}-1"); 12 $firstDay = intval($first->format('w')) === 0 ? 1 : intval($first->format('w')) === 6 ? 2 : 0; 13 return $first->modify("{$firstDay} days"); 14}

投稿2018/12/04 04:53

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

今日がその月の最初の平日である定義

  • 今日が1日で平日
  • 今日が2日か3日で月曜日

PHP

1list($y,$m,$d,$w)=explode("-",date("Y-n-j-w")); 2$flg=(($d==1 and in_array($w,range(1,5))!==false) or ($w==1 and in_array($d,range(2,3))!==false)); 3print $flg?"OK":"NG";

投稿2018/12/04 03:23

yambejp

総合スコア114883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

祝日の考慮は別として、「その月の最初の土曜日、あるいは日曜日」という形であれば

PHP

1echo date('Y-m-d D', (($sat = strtotime("first saturday of this month")) > ($sun =strtotime("first sunday of this month")) ? $sun : $sat)).PHP_EOL;

って感じで出せます。

投稿2018/12/04 02:59

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsubakin

2018/12/04 03:06

回答ありがとうございます こちらの質問の仕方が悪かったので、申し訳ないです。 質問内容を少し違う書き方で追加したので 改めて回答いただければ幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問