PHP では、文字列と時刻の変換が頻繁に発生する問題です。特にタイムスタンプ、日付、時刻に関連する操作を扱う場合、文字列と時刻の変換が特に重要です。この記事では、PHP で文字列を DateTime オブジェクトに変換する方法について詳しく説明します。
1. 文字列を DateTime オブジェクトに変換する基本操作
PHP では、DateTime クラスの createFromFormat() メソッドを使用して、文字列を DateTime オブジェクトに変換できます。 DateTime オブジェクト。このメソッドの関数プロトタイプは次のとおりです。
public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone = NULL ] )
このうち、$format パラメーターは時刻文字列の形式を表すために使用され、$time パラメーターは DateTime に変換する必要がある文字列を表します。オブジェクトであり、$timezone パラメーターは設定する必要があるタイム ゾーンを表します。 $format パラメータの値は、次のように strftime() 関数と同じです。
#Format | Meaning |
---|---|
%d | 先頭にゼロを付けた日付 (01-31) |
%m | 月、先行ゼロ付き (01-12) |
%Y | 年、4 桁 |
%H | 時間、24 時間形式、先行ゼロ付き (00 ~ 23) |
%i | 分、先行ゼロ付き (00 ~ 59) |
%s | 秒数 (先頭にゼロを付ける) (00-59) |
%p | 午前または午後 (am または pm) を表す小文字 |
%P | 午前または午後 (AM または PM) を表す大文字 |
次に、文字列を DateTime オブジェクトに変換する例を示します。
<?php $dateStr = '2018-03-15'; $dateTime = DateTime::createFromFormat('Y-m-d', $dateStr); echo $dateTime->format('Y-m-d H:i:s'); ?>
この例では、文字列 "2018-03-15" を DateTime オブジェクトに変換し、次の形式を使用します。 ()メソッド 「2018-03-15 00:00:00」の形式にします。
2. 日付と時刻形式の文字列変換
日付と時刻形式の文字列を処理する場合、変換に特定の日付と時刻形式を使用する必要があります。一般的に使用される日付と時刻の形式は次のとおりです。
意味 | |
---|---|
年、月、日 (例: 2018-03-15) | |
年、月、日日 (例: 2018/03 /15) | |
年、月、日 (例: 2018.03.15) | |
年月日 (例: 2018 年 3 月 15 日) | |
年、月、日 (例: 20180315) | |
時: 分: 秒 (例: 22:30:15) | |
時: 分 (例: 22:30) | |
年月日 時:分:秒 (例:2018-03-15 22:30:15) | |
年 月 日 時: 分 (例: 2018年3月15日 22:30) |
3. タイムゾーンの設定
日付と時刻の処理プロセスでは、タイムゾーンの設定が非常に重要です。タイム ゾーンの設定は、DateTimeZone クラスの静的メソッドを通じて実現できます。一般的に使用されるタイム ゾーンの例を次に示します。
アフリカ/アクラ | |
アフリカ/アディスアベバ | |
アメリカ/ニューヨーク州 | |
アジア/上海 | |
オーストラリア/シドニー | |
ヨーロッパ/パリ | |
太平洋/フィジー | |
例如设置时区为中国标准时间的例子如下: <?php $dateStr = '2018-03-15 22:30:15'; $timezone = new DateTimeZone('Asia/Shanghai'); $dateTime = DateTime::createFromFormat('Y-m-d H:i:s', $dateStr, $timezone); echo $dateTime->format('Y-m-d H:i:s'); ?> 以上例子将字符串"2018-03-15 22:30:15"转换为DateTime对象,并将时区设置为中国标准时间。 四、总结 通过本文的介绍,我们学习了如何将字符串转换为PHP中的DateTime对象。在实际开发中,我们需要根据时间格式和时区的需求来设置转换参数。同时,在处理时间相关操作时,也需要注意时区的设置以及日期时间格式的转换。 需要指出的是,在字符串转换为DateTime对象过程中,需要保证字符串的格式与时间格式一致。一旦字符串格式不正确,将导致转换失败。因此,在处理时间相关操作时,需要仔细检查字符串格式以及转换参数。 |
以上がPHPを使用して文字列をDateTimeオブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。