在PHP 中更改日期格式
在 PHP 中,您可以使用 date() 函数或 DateTime 类更改日期格式。date() 函数允许您以各种方式格式化时间戳或当前日期。DateTime 类提供了更高级的功能来处理日期和时间。
更改 php 中的日期格式
以下是这两种方法的示例:
.使用 date() 函数:
$timestamp = time(); // Current timestamp
// Convert timestamp to desired date format
$formatted_date = date("Y-m-d H:i:s", $timestamp); // Example format: 2023-08-08 15:30:00
echo $formatted_date;
1)使用DateTime类:
$timestamp = time(); // Current timestamp
// Create a DateTime object from timestamp
$date = new DateTime();
$date->setTimestamp($timestamp);
// Format the date using DateTime format method
$formatted_date = $date->format("Y-m-d H:i:s"); // Example format: 2023-08-08 15:30:00
echo $formatted_date;
以下是您可以在格式字符串中使用的一些常见格式字符:
Y - 4 位数字的年份(例如 2023)
m - 带前导零的月份(01 到 12)
d - 带前导零的月份中的某天(01 到 31)
H - 24 小时格式的小时,带前导零(00 到 23)
i - 带有前导零的分钟(00 到 59)
s - 带有前导零的秒(00 到 59)
您可以组合这些字符来创建所需的日期格式。
例如,如果您希望日期采用更易读的格式,例如“2023 年 8 月 8 日下午 3:30”,则可以使用以下格式字符串:
$formatted_date = date("F j, Y, g:i A", $timestamp); // Example format: August 8, 2023, 3:30 PM
请记住,可用的格式字符可能会有所不同,具体取决于您使用的 PHP 版本。
将 YYYY-MM-DD 更改为 DD-MM-YYYY
想象一下,您以 MM-DD-YYYY 格式保留日期 2023-08-08,并打算将其更改为 DD-MM-YYYY 格式的 08-08-2023。
这是一个例子:
<?php
$orgDate = "2023-08-08";$newDate = date("d-m-Y", strtotime($orgDate));echo "New date format is: " . $newDate . " (MM-DD-YYYY)";
?>
将 YYYY-MM-DD 更改为 MM-DD-YYYY
现在,想象一下 YYYY-MM-DD 格式的日期 2023-08-08。让我们将其转换为 08-08-2023 (MM-DD-YYYY),如下所示:
<?php
$orgDate = "2023-08-08";
$newDate = date("m-d-Y", strtotime($orgDate));
echo "New date format is: " . $newDate . " (MM-DD-YYYY)";
?>
将 DD-MM-YYYY 更改为 YYYY-MM-DD
在本部分中,考虑采用 DD-MM-YYYY 格式的日期 08-08-2023。下面,您可以看到如何将其转换为 2023-08-08 (YYYY-MM-DD) 格式:
<?php
$orgDate = "08-08-2023";$newDate = date("Y-m-d", strtotime($orgDate));echo "New date format is: " . $newDate . " (YYYY-MM-DD)";
?>
将 DD-MM-YYYY 更改为 YYYY/MM/DD
现在,假设日期为 DD-MM-YYYY 格式,为 08-08-2023。它由破折号(-)分隔。我们尝试将其转换为 2023/08/08 (YYYY/MM/DD) 格式,用斜杠 (/) 分隔。
以下是如何做到这一点:
<?php
$orgDate = "08-08-2023";
$date = str_replace('-"', '/', $orgDate);
$newDate = date("Y/m/d", strtotime($date));
echo "New date format is: " . $newDate . " (YYYY/MM/DD)";
?>
将日期时间更改为不同的格式
在本节中,您将了解如何将日期格式 MM-DD-YYYY 转换为 YYYY-DD-MM,以及如何将 12 小时制时钟转换为 24 小时制。
这是一个例子:
<?php
$date = "08/08/2023 5:36 PM";
//converts date and time to seconds
$sec = strtotime($date);
//converts seconds into a specific format
$newdate = date("Y/d/m H:i", $sec);
//Appends seconds with the time
$newdate = $newdate . ":00";
// display converted date and time
echo "New date time format is: " . $newDate;
?>
PHP 将字符串转换为日期时间
本文将教您如何使用各种 PHP 方法和技术将简单字符串转换为日期格式。
基础
要将字符串转换为日期,我们将使用两个函数:strtotime() 和 date() 函数。我们还可以使用 DateTime::createFromFormat 方法。
我们将从 strtotime() 和 date() 函数的组合开始。
PHP strtotime() 函数
PHPstrtotime()方法允许您将人类可读的时间格式转换为 Unix 时间。
Unix 时间是指自 1970 年 1 月 1 日 00:00:00 以来经过的秒数。
该函数采用如下所示的语法:
strtotime(string $datetime)
该函数将时间戳作为参数,如果转换成功,则以整数形式返回日期。该函数还在失败时返回布尔值 false。
注意:该函数将以不同的方式解释各种格式。例如,如果将分隔符用作斜杠,则该方法将假定美国日期和时间格式为 M/D/Y。但是,如果分隔符为 (-),则使用欧洲格式 (DMY)。
为了安全起见,请使用 ISO 8601 (YYYY-MM-DD) 格式。
查看以下示例,了解如何使用 strtotime() 函数。
<?php
echo strtotime("now"), "\n"; // <-- convert time now to unix
echo strtotime("next Friday"), "\n";
echo strtotime("+7 weeks"), "\n";
echo strtotime("2023-08-08"), "\n";
echo strtotime("+10 hours"), "\n";
?>
上面的示例将各种字符串转换为其相关的 Unix 时间戳。
PHP Date() 函数
我们将看到的以下函数是 Date() 函数。此函数采用 Unix 时间戳并将其转换为本地日期和时间格式。该函数的语法可以表示为:
date(format, timestamp);
它接受日期和时间格式以及时间戳。格式化后,该函数将返回相应格式化的日期和时间。
例如,让我们将特定时间戳转换为日期和时间。
<?php
echo date("d/M/Y H:i:s", 1638092852), "\n";
?>
在上面的示例中,我们使用日期格式将特定的 Unix 时间戳转换为日期/月/年时:分秒格式。
运行上面的代码,您应该得到如下所示的输出:
$ php date_format.php
28/Nov/2021 11:47:32
组合 Strtotime() 和 Date()
要将特定字符串转换为日期和时间格式,我们可以将 strtotime() 函数和日期结合起来,正如我们已经看到的那样。
考虑如下所示的示例:
<?php
$timestamp = strtotime("+10 hours");
echo date("d/M/Y H:i:s", $timestamp), "\n";
?>
下面的示例使用 strtotime() 函数将特定字符串转换为 Unix 时间戳。
然后我们使用日期函数将时间戳转换为特定的日期和时间格式。
使用 DateTime::createFromFormat()
我们可以用来从字符串创建 DateTime 的另一种方法是 DateTime::createFromFormat()。这是 PHP 5.2 及更高版本中提供的内置 PHP 函数。它返回一个 DateTime 对象,以指定的格式表示日期和时间。
下面的示例展示了如何使用它。
<?php
$datenew = DateTime::createFromFormat("Y-m-d", "2023-08-08");
echo $datenew->format("Y-m-d"), "\n";
?>
上面的代码应该返回日期。