如何在 PHP 中将字符串转换为日期和日期时间
PHP 中有几种将字符串转换为 Date
和 DateTime
的方法,比如可以使用作 strtotime()
和 date()
的组合,使用 DateTime::createFromFormat
类方法或同一类中的 format()
方法,或使用 PHP 的内置函数 date_create_from_format
。
strtotime()
和 date
的组合
strtotime()
函数返回从 1970 年 1 月 1 日起经过的秒数,就像 Linux 机器的时间戳一样。它从传递给函数的提供的参数返回总秒数。
参数:
Time/Date
(必需) - 此参数以字符串格式指定日期/时间。Now
(可选) - 此参数是可以用作计算相对日期的基础的时间戳
date()
函数是用于格式化本地日期和时间并返回新的格式化日期字符串的函数。
参数:
format
(必需)-此参数指定提供的字符串的格式。timestamp
(可选)-此参数是整数 UNIX 时间戳,默认值为当前本地时间。
要同时合理地使用 strtotime()
()和 date()
,请在第一个日期使用 strtotime()
,然后使用 date()
将其转换回去。
例:
$oldDate = strtotime('03/08/2020');
$newDate = date('Y-m-d',$time);
echo $newDate;
//output: 2020-03-08
**注意:**在用作日期格式的分隔符时,/
和 -
之间存在巨大差异,如果分隔符为/
,则假定使用美国格式 m/d/y
;如果分隔符为 -
,则采用欧洲的 d-m-y
格式。为避免歧义,建议使用 ISO 8601 (YYYY-MM-DD)
日期。
使用 DateTime::createFromFormat
或 date_create_from_format
DateTime::createFromFormat
是一个内置的 PHP 函数,它返回一个新的 DateTime
对象,该对象代表日期和时间格式。另一方面,date_create_from_format
是使用 DateTime::createFromFormat
的程序样式。
参数:
Format
(必需)-此参数指定要使用的格式。Time
(必需)-此参数表示日期/时间字符串。如果此参数为NULL
,则它将使用当前日期/时间。Timezone
(可选)-时区。默认值为当前时区。
DateTime::createFromFormat
举例:
echo $dateNew = DateTime::createFromFormat('m-d-Y', '03-08-2020')->format('Y/m/d');
//output: 2020/03/08
date_create_from_format
举例:
echo $dateNew = date_create_from_format("m-d-Y", "03-08-2020")->format("Y-m-d");
//output: 2020/03/08
date_create_from_format
和 DateTime::createFromFormat
之间的唯一区别是,DateTime::createFromFormat
在 PHP 5.2 及以下版本中不可用。
相关文章 - PHP Date
- 如何在 PHP 中添加天数到日期
- 如何使用 PHP 计算两个日期之间的差
- 如何在 PHP 中将 DateTime 转换为字符串
- 如何在 PHP 中将一种日期格式转换为另一种日期格式
- 如何在 PHP 中获取当前日期和时间