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

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

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

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

Q&A

解決済

2回答

1222閲覧

PHPのdate(N)について

ao_love

総合スコア441

PHP

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

0グッド

0クリップ

投稿2015/06/18 03:13

お世話になっております。

とても単純な質問なのですが、外注したシステムの中で

lang

1$youbi = date(N); 2 3if( $youbi == 1 ){ $fwd_youbi = "mon"; } 4if( $youbi == 2 ){ $fwd_youbi = "tue"; } 5if( $youbi == 3 ){ $fwd_youbi = "wed"; } 6if( $youbi == 4 ){ $fwd_youbi = "thu"; } 7if( $youbi == 5 ){ $fwd_youbi = "fri"; } 8if( $youbi == 6 ){ $fwd_youbi = "sat"; } 9if( $youbi == 0 ){ $fwd_youbi = "sun"; }

という表記を見つけました。
ん?と思って調べ直してみたのですが
date(N)って0を返すことはないですよね…?

正しくは

lang

1$youbi = date(w); 2 3(省略)

lang

1(省略) 2 3if( $youbi == 7 ){ $fwd_youbi = "sun"; }

という認識で間違いないでしょうか?

正直

lang

1$youbi = date(D)

じゃダメなの?と思いますが、まだ詳細を見てないので大文字小文字で支障があるのかもしれません。

その直前に

lang

1// 今日の曜日(数字で) 2$today_yobi = date(w); 3if($today_yobi == 0){ 4 $today_yobi = 7; 5}

という表記もあり、$youbiはこの変換で使われて以降その中に一切出てこないので$youbiの存在自体謎なのですが、cronで設定されているファイルですし、includeしているファイルなどとの兼ね合いもまだ検証できていないので一旦置いておくとしても、一番上のソースは日曜日が存在しないことになってしまうのでは?と思い、緊急性を感じたのでお尋ねいたしました。

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

date("N")でなくdate(N)と書いてあるようなコードの品質って、推して知るべしだと思います。

さすがに、その前にdefine("N","w");とか書かれてたりしないですよね?

投稿2015/06/18 03:38

otn

総合スコア84499

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

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

ao_love

2015/06/18 03:51

コメントありがとうございます。 私もつられてdate(D)とか書いちゃいましたが、""つけるの忘れた…ってあとから気付きました…orz さすがに define("N","w"); はなかったです。 全体的にだいぶレガシーというか、ある意味私のような初心者にもやさしいコードではありますね…。 mysql_queryを見たときはさすがに戦慄を覚えました…
ao_love

2015/06/18 03:52

首が飛んだ…!orz
nanndemoiikara

2015/06/18 04:05

> さすがに、その前にdefine("N","w");とか書かれてたりしないですよね? 声に出して笑いました。
退会済みユーザー

退会済みユーザー

2015/06/18 05:39

僕も「あーあ、defineしちゃったか…」と思いました。
guest

0

ベストアンサー

ao_love様の認識で間違っていないかと思います。

正直
$youbi = date(D)
じゃダメなの?と思いますが、まだ詳細を見てないので大文字小文字で支障があるのかもしれません。

lang

1strtolower(date('D'));

でどうでしょう?

投稿2015/06/18 03:19

nanndemoiikara

総合スコア775

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

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

ao_love

2015/06/18 03:29

ありがとうございます! 確かにstrtolowerを使えば一行で済みますね!早々の回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問