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

標記の件で質問です。(環境 : PHP 4.3)


(1)
標準関数で、日付から和暦の曜日を取得することは可能でしょうか?
手元の市販書籍を見た限りではなさそうでしたので、下記のような関数を書いてみました
しかし、引数にyyyy/mm/dd形式の日付 (例えば、2004/07/01 ~ 07/31) を指定して確認したところ、常に木曜
と判定されてしまいます。
yyyy/mm/dd形式の文字列は、日付型とは認識されないのでしょうか、それとも別の問題でしょうか?

function GetWeekDayNameJp($DateTime)
{
$Number = strftime("%u", $DateTime);
switch ( $Number ) {
case 1:
return "月";
break;
case 2:
return "火";
break;
case 3:
return "水";
break;
case 4:
return "木";
break;
case 5:
return "金";
break;
case 6:
return "土";
break;
case 7:
return "日";
break;
}
}

(2)
標準関数で、yyyy/mm/dd 形式の文字列から日付型への変換は可能でしょうか?
(=VBのCDate関数に相当するもの)
これも、手元の市販書籍を見た限りではなさそうでしたが......?
手組みで作る場合、どのように実装すればよいでしょうか?


(3) VBとの機能対応表
上記の処理を自前で実装するとすれば、文字列の左4桁(年)、中2桁(月)、右2桁(日)
を切り出す (VBのLeft$、Mid$、Right$ 関数に相当) ことになると思いますが、どの関数
を使用すれば可能でしょうか?
また、VBとPHPの機能対応表があればご紹介頂けないでしょうか?

http://ns1.php.gr.jp/mailman/listinfo/php-dev も調べてみましたが、必要な情報を発見できませんでした。

(見落としているかも知れませんが....)

A 回答 (1件)

標準関数とは PHP の関数ということでしょうか?


既定インストールでの関数ということならばムリです。

曜日を知るにはカレンダー関数を使用します。

$dayofweek = JDDayOfWeek(gregoryantojd(6, 23, 2004),0);
で 2004 年 6 月 23 日 の曜日を整数で返します。
(0 が日曜日)
カレンダー関数を使用するためには
configure で --enable-calendar を指定します。

詳しくはマニュアルをよんでください。
http://www.php.net/download-docs.php
VI. カレンダー関数

参考URL:http://www.php.net/download-docs.php
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

(1)
ご指摘の通り、strtotime 関数を使用したところ、yyyy/mm/dd形式文字列 → 日付型に変換することができ、GetWeekDayNameJp関数の
実行結果で期待通りの戻り値が得られました。
しかしながら、曜日の和名を表示する標準関数は、やはりないようです。

(2)
上記のstrtotime 関数はVBのCDate関数とほぼ同機能に該当するようです。

(3)
(1)、(2)が解決したため、さしあたっての必要性はなくなりました。いずれ時間があるときに調べるつもりです。


大変助かりました。お礼申し上げます。

お礼日時:2004/06/24 05:01

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