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 サイトの他の関連記事を参照してください。