- 締切済み
PHP でyyyy/mm/dd形式の文字列から日付への変換方法、文字列処理関数
標記の件で質問です。(環境 : 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 も調べてみましたが、必要な情報を発見できませんでした。 (見落としているかも知れませんが....)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- umota
- ベストアンサー率46% (150/324)
標準関数とは PHP の関数ということでしょうか? 既定インストールでの関数ということならばムリです。 曜日を知るにはカレンダー関数を使用します。 例 $dayofweek = JDDayOfWeek(gregoryantojd(6, 23, 2004),0); で 2004 年 6 月 23 日 の曜日を整数で返します。 (0 が日曜日) カレンダー関数を使用するためには configure で --enable-calendar を指定します。 詳しくはマニュアルをよんでください。 http://www.php.net/download-docs.php VI. カレンダー関数
お礼
コメントありがとうございます。 (1) ご指摘の通り、strtotime 関数を使用したところ、yyyy/mm/dd形式文字列 → 日付型に変換することができ、GetWeekDayNameJp関数の 実行結果で期待通りの戻り値が得られました。 しかしながら、曜日の和名を表示する標準関数は、やはりないようです。 (2) 上記のstrtotime 関数はVBのCDate関数とほぼ同機能に該当するようです。 (3) (1)、(2)が解決したため、さしあたっての必要性はなくなりました。いずれ時間があるときに調べるつもりです。 大変助かりました。お礼申し上げます。