Dalam PHP, penukaran rentetan dan masa adalah masalah yang sering dihadapi. Terutama apabila berurusan dengan operasi yang berkaitan dengan cap masa, tarikh dan masa, penukaran rentetan dan masa adalah sangat penting. Artikel ini akan memperincikan cara menukar rentetan kepada objek DateTime dalam PHP.
1. Operasi asas menukar rentetan kepada objek DateTime
Dalam PHP, anda boleh menggunakan kaedah createFromFormat() dalam kelas DateTime untuk menukar rentetan kepada objek DateTime . Prototaip fungsi kaedah ini adalah seperti berikut:
public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone = NULL ] )
Antaranya, parameter $format digunakan untuk mewakili format rentetan masa, parameter $time mewakili rentetan yang perlu ditukar menjadi objek DateTime, dan parameter $timezone mewakili keperluan untuk menetapkan zon waktu. Nilai parameter $format adalah sama dengan fungsi strftime(), seperti berikut:
格式 | 含义 |
---|---|
%d | 月份中的第几天,有前导零(01-31) |
%m | 月份,有前导零(01-12) |
%Y | 年份,四位数字 |
%H | 小时,24小时格式,有前导零(00-23) |
%i | 分钟,有前导零(00-59) |
%s | 秒数,有前导零(00-59) |
%p | 上午或下午的小写字母(am或pm) |
%P | 上午或下午的大写字母(AM或PM) |
Berikut ialah contoh menukar rentetan kepada objek DateTime:
<?php $dateStr = '2018-03-15'; $dateTime = DateTime::createFromFormat('Y-m-d', $dateStr); echo $dateTime->format('Y-m-d H:i:s'); ?>
Contoh ini Tukar rentetan "2018-03-15" kepada objek DateTime dan gunakan kaedah format() untuk memformatkannya dalam bentuk "2018-03-15 00:00:00".
2. Penukaran rentetan dalam format tarikh dan masa
Apabila memproses rentetan dalam format tarikh dan masa, kita perlu menggunakan format tarikh dan masa tertentu untuk penukaran. Berikut ialah beberapa format tarikh dan masa yang biasa digunakan:
格式 | 含义 |
---|---|
Y-m-d | 年月日(如:2018-03-15) |
Y/m/d | 年月日(如:2018/03/15) |
Y.m.d | 年月日(如:2018.03.15) |
Y年m月d日 | 年月日(如:2018年03月15日) |
Ymd | 年月日(如:20180315) |
H:i:s | 小时:分钟:秒(如:22:30:15) |
H:i | 小时:分钟(如:22:30) |
Y-m-d H:i:s | 年月日 小时:分钟:秒(如:2018-03-15 22:30:15) |
Y年m月d日 H:i | 年月日 小时:分钟(如:2018年03月15日 22:30) |
Sebagai contoh, contoh menukar rentetan "15 Mac 2018 22:30" kepada objek DateTime adalah seperti berikut:
<?php $dateStr = '2018年03月15日 22:30'; $dateTime = DateTime::createFromFormat('Y年m月d日 H:i', $dateStr); echo $dateTime->format('Y-m-d H:i:s'); ?>
Contoh ini menukar rentetan "2018-03-15 22:30" menjadi objek DateTime dan menggunakan kaedah format() untuk memformatkannya ke dalam bentuk "2018-03-15 22:30:00 ".
3. Tetapan zon waktu
Dalam proses pemprosesan tarikh dan masa, penetapan zon masa adalah sangat penting. Tetapan zon masa boleh dicapai melalui kaedah statik dalam kelas DateTimeZone. Berikut ialah beberapa zon waktu yang biasa digunakan:
时区名称 | 含义 |
---|---|
Africa/Abidjan | 科特迪瓦时间 |
Africa/Accra | 加纳标准时间 |
Africa/Addis_Ababa | 非洲东部时间 |
America/New_York | 美国东部时间 |
Asia/Shanghai | 中国标准时间 |
Australia/Sydney | 澳大利亚东部标准时间 |
Europe/Paris | 中欧时间 |
Pacific/Fiji | 斐济时间 |
例如设置时区为中国标准时间的例子如下:
<?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对象过程中,需要保证字符串的格式与时间格式一致。一旦字符串格式不正确,将导致转换失败。因此,在处理时间相关操作时,需要仔细检查字符串格式以及转换参数。
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan ke objek DateTime menggunakan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!