初心者です。
こういうタイトルの質問で良いかもちょっと疑問です、すみません。
現在の時間を取得しようとして
$now = new DateTime();
とすると、
DateTime Object
(
[date] => 2011-03-06 15:36:11
[timezone_type] => 3
[timezone] => Asia/Tokyo
)
が返されます。
これは配列かと思って
$now['date']
とするとFatal error: Cannot use object of type DateTime as array in.....となってしまい、ここで配列ではなくオブジェクトだということに気付き、
$now->date
など、色々と試行錯誤していますが、現在の時間を取得することができません。
どなたか教えていただけますでしょうか?
No.1
- 回答日時:
マニュアルを読みましょう。
http://jp2.php.net/manual/ja/class.datetime.php
日時を取り出すなら、↓ですね。
http://jp2.php.net/manual/ja/datetime.format.php
DateTimeクラスを使うのが目的でなければ、普通の日時関数を使うのがわかりやすいでしょう。
http://jp2.php.net/manual/ja/ref.datetime.php
No.2
- 回答日時:
$now = new DateTime();
$now->modify("+1 day");
echo $now->format("Y-m-d");
です
No.3ベストアンサー
- 回答日時:
なるほど、紛らわしいですよね。
まず、先に日時の表示ですが、
echo $now->format(DateTime::W3C);
こんなふうに書いてみましょう。
多分 2011-03-06T15:36:11+09:00 こんな表示がされるかと思います。
これはタイムゾーンを含んだ表示がされています。
世界で決めた基準時間よりも9時間進んでますよという表現がW3Cという団体が決めたフォーマットで表示されています。
#時間の表現は今回のお題では無いと思うので、この辺にしておいて。
さて、なんだこれってのを説明しなくてはならないのですが
質問の配列と思った内容って var_dump($now) したときの結果ですよね。
これはオブジェクトの内部で持っているプロパティが表示されているんです。
で、「オブジェクトは、データと操作がセットになっている」と思ってください。
配列はデータのみですから、この点が違いますね。
で、DateTimeオブジェクト(データが入っていないのでクラスという言い方がいいですね)
の説明は http://jp.php.net/manual/ja/class.datetime.php こんな風に書かれてます。
最初にクラス概要とありますが、概要なのでその先に進んで「定義済み定数」があって、そこに先程の DateTime::W3C なんかがチラッと見えたりします。
変数じゃなくて定数なので、これはずっと決まった値です。
で、その先の「目次」からが、このクラスの操作。メソッドと呼ばれるものです。
先ほどの format も
「DateTime::format — 指定した書式でフォーマットした日付を返す」
とありますね。
「DateTime::format」をクリックして先にするんでみると、メソッドの詳細が書かれています。
「public string DateTime::format ( string $format )」
こんな感じ。
これは、format()の括弧の中に フォーマットを表す文字列を与えると、整形して日時を返してくれるということです。
で、皆が使う(つーか世界標準的な)フォーマットは、先程の定数であらかじめ、名前を付けて定義しているということです。
なので
echo $now->format('Y年m月d日 H時i分s秒');
ってのもアリです。
でこの元となるデータが先ほどの var_dump()の結果のプロパティです。
オブジェクトとかクラスと言いましたが、ざっくり
- クラス - 中身の入っていないお弁当箱(おかずの配置に決まり有り)
- オブジェクト - 中身が詰まったお弁当(インスタンスと言われることもある)
こんなイメージでいいかと。
なので、クラスを定義する→お弁当箱の仕切りを決める。
new する。インスタンスを取る。オブジェクトを作る→ご飯とかおかずを詰める
こんな感じで。(後からおかずをトッピングすることもあり)
で、メソッド「DateTime::format(String $format)」の読み方に戻りますが、public string って始まっていますね。
string は結果は文字列で返しますよという意味ですが、public ってのは権限を表しています。
public の他に protected, private とありますが、オブジェクトの外から影響を与えらるのが public です。その他2つはオブジェクトの内部で作用する権限です。
例えば、「DateTime::format(String $format)」では、引数パラメータ $format を解析して、年とか月とかを割り当てなければなりませんね。それを別メソッドとして書いたほうがスッキリまとまると思いますが、そんなメソッドが定義されていると、なんだか使ってみたくなりませんか?その結果肝心の format の戻り値が正確な時間じゃなくなったら困ります。ということで、内部だけに作用する権限にされていると思います。
長文になってしまいましたが、こんなこともできます。
<?php
class MyDateTime extends DateTime {
const myFormat = 'Y年m月d日H時i分s秒';
public function __toString() {
return $this->format(self::myFormat);
}
}
$now = new MyDateTime();
echo $now;
?>
ちょっと勉強が必要かもしれませんが、PHPのマニュアルにもいろいろ書かれてますから、遊んでみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/06 00:57
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 英語 to date 2 2023/05/23 23:22
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
phpのクラスメソッドの定義が長...
-
【PHP】privateな静的メソッド...
-
メモリ解放のタイミング
-
class定義のphpをファイル分割...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
form actionで二つ送信先を指定...
-
シェルスクリプトからphpファイ...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
存在しないメールアドレスかど...
-
.htaccessにphp_valueが使用できな
-
PHP8を使うと、大量のWarningが...
-
PHPでfatal errorが出ても無視...
-
アップロード画像数でCSSを分け...
-
Apacheでhttp://localhost/が表...
-
別ファイルの変数を呼び出した...
-
FORMで送信ボタンと戻るボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
phpのクラスメソッドの定義が長...
-
ラッパークラスって何ですか?
-
'_'(アンダースコア)の使い方...
-
class定義のphpをファイル分割...
-
配列とオブジェクトの違い
-
PHP4、PHP5 1ファイル複数クラ...
-
関数定義の関数名の前にある&(...
-
php、可変プロパティ名について
-
クラス設計の良い参考書を教え...
-
phpのクラスにて別ファイルの変...
-
class.upload.phpの戻り値(返...
-
【PHP】クラス と 関数 の違い
-
php インスタンスとオブジェク...
-
Re: Cookieを使ってオブジェク...
-
PHPでサブクラスからスーパクラ...
-
クラス
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
おすすめ情報