首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]如何在 PHP 中将字符串转换为日期和日期时间

发布于 2024-12-09 16:44:38
0
152

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 及以下版本中不可用。

评论
一个月内的热帖推荐
久久在线
Lv.1普通用户

551

帖子

21

小组

2050

积分

赞助商广告
站长交流