0

0

PHP中的日期和时间格式化

WBOY

WBOY

发布时间:2023-09-01 20:37:06

|

3978人浏览过

|

来源于php中文网

原创

php中的日期和时间格式化

在开发网站时,您经常需要使用日期和时间。例如,您可能需要显示帖子的最后修改日期或提及读者发表评论的时间。您可能还需要显示特殊事件发生之前的倒计时。

幸运的是,PHP 附带了一些内置的日期和时间函数,这将帮助我们轻松完成所有这些工作。

本教程将教您如何在 PHP 中设置当前日期和时间的格式。您还将学习如何从日期字符串获取时间戳以及如何添加和减去不同的日期。

获取字符串格式的日期和时间

date($format, $timestamp) 是 PHP 中最常用的日期和时间函数之一。它将所需的日期输出格式作为第一个参数,并将整数作为时间戳值,需要将其转换为给定的日期格式。第二个参数是可选的,省略它会根据 $format 的值以字符串格式输出当前日期和时间。

立即学习PHP免费学习笔记(深入)”;

$format 参数接受一系列字符作为有效值。其中一些字符具有简单的含义:Y 为您提供 4 位年份的完整数字表示形式 (2018),而 y 只为您提供年份的最后两位数字今年 (18)。同样,H 将以 24 小时格式显示小时,并带有前导零,但 h 将以 12 小时格式显示小时,并带有前导零。

以下是一些最常见的日期格式字符及其值。

字符 含义 示例
D 一个月中的某天(带前导零) 03 或 17
j 不带前导零的月份中的某天 3 或 17
D 以三个字母缩写表示的星期几 周一
l 一周中的某一天 星期一
M 月份为带前导零的数字 09 或 12
n 月份为不带前导零的数字 9 或 12
M 月份作为三个字母的缩写 九月
F 整个月 九月
Y 两位数年份 18
Y 全年 2018

还有许多其他特殊字符可以指定 date() 函数的输出。最好查阅 date() 函数文档中的格式字符表,了解有关特殊情况的更多信息。

现在让我们看看 date() 函数的一些实际示例。我们可以用它来获取当前年份、当前月份、当前小时等,也可以使用它来获取完整的日期字符串。


您还可以使用 date() 函数来输出时间。以下是一些最常用的时间格式字符:

字符 含义 示例
G 12 小时格式的小时,不带前导零 1 或 12
H 12 小时格式的小时,带前导零 01 或 12
G 24 小时格式的小时,不带前导零 1 或 13
H 24 小时格式的小时,带前导零 01 或 13
A am/pm 小写 上午
A am/pm 大写 上午
i 带前导零的分钟 09 或 15
s 带前导零的秒 05 或 30

这里是一些输出格式化时间字符串的示例。

// Output — 11:03:37 AM
echo date('h:i:s A');

// Output — Thursday, 11:04:09 AM
echo date('l, h:i:s A');

// Output — 13 September 2018, 11:05:00 AM
echo date('d F Y, h:i:s A');

?>

如果您想在日期字符串中使用这些特殊字符,转义它们也很重要。


获取 Unix 时间戳

有时,您需要在 PHP 中获取当前 Unix 时间戳的值。借助 time() 函数,这非常容易。它返回一个整数值,描述自 1970 年 1 月 1 日午夜 (00:00:00) GMT 以来经过的毫秒数。

您还可以使用此功能来回返回时间。为此,您所要做的就是从 time() 的当前值中减去正确的秒数,然后将结果值更改为所需的日期字符串。以下是两个示例:


您应该记住的一件重要事情是,time() 返回的时间戳值与时区无关,并且获取自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数。这意味着在特定时间点,此函数将在美国、欧洲、印度或日本返回相同的值。

获取特定日期的时间戳的另一种方法是使用 mktime($hour, $min, $second, $month, $day, $year) 函数。当省略所有参数时,该函数仅使用当前本地日期和时间来计算时间戳值。此函数还可以与 date() 一起使用来生成有用的日期和时间字符串。


基本上,time() 可用于来回返回一段时间,而 mktime() 在您想要前往某个时间点时很有用特定时间点。

将日期时间字符串转换为时间戳

当您想要将字符串格式的不同日期和时间值转换为时间戳时,strtotime($time, [$now = time()]) 函数将非常有用。该函数可以将几乎所有类型的日期时间字符串解析为时间戳。

您一定要检查有效的时间格式、日期格式、复合日期时间格式和相对日期时间格式。

使用相对日期时间格式,该函数可以轻松地将常用字符串转换为有效的时间戳值。下面的例子应该可以清楚地说明:


添加、减去和比较日期

可以在日期中添加或减去特定的时间段。这可以借助 date_add()date_sub() 函数来完成。您还可以使用 date_diff() 函数来减去两个日期并以年、月、日或其他形式输出它们之间的差异。

通常,使用 DateTime 类以面向对象的方式执行任何此类与日期和时间相关的算术比按程序执行更容易。我们将在这里尝试这两种样式,您可以选择您最喜欢的一种。

jQuery带时间日期日历插件
jQuery带时间日期日历插件

jQuery带时间日期日历插件是一款扁平化风格的日期选择插件Ecalendar.js。

下载
format('%Y years, %M months and %d days');

$present = new DateTime('now');
$future = new DateTime('last day of January 2024');
$interval = $present->diff($future);
// Output — 05 years, 04 months and 17 days
echo $interval->format('%Y years, %M months and %d days');

?>

使用 DateTime::diff() 时,会从调用 diff() 方法的 DateTime 对象中减去DateTime 对象,该对象传递给 diff() 方法。当您编写过程样式代码时,将从第二个日期参数中减去第一个日期参数。

该函数和方法都返回一个 DateInterval() 对象,表示两个日期之间的差异。可以使用 format() 方法文档中列出的所有字符来格式化此间隔以提供特定输出。

当减去或增加时间间隔时,面向对象风格和过程风格之间的差异变得更加明显。

您可以使用 DateTime() 构造函数实例化新的 DateTime 对象。同样,您可以使用 DateInterval() 构造函数实例化 DateInterval 对象。它接受一个字符串作为其参数。间隔字符串以 P 开头,表示句点。之后,您可以使用整数值和分配给特定句点的字符来指定每个句点。您应该查看 DateInterval 文档以了解更多详细信息。

下面的示例说明了在 PHP 中添加或减去日期和时间是多么容易。

add($the_interval);

// Output — It will be Saturday, 05 March, 2039 after 20 years, 05 months and 20 days from today.
echo 'It will be '.$now->format('l, d F, Y').' after '.$the_interval->format("%Y years, %M months and %d days").' from today.';

$now = date_create('now');
$the_interval = date_interval_create_from_date_string('20 years 05 months 20 days');
date_add($now, $the_interval);

// Output — It will be Saturday, 05 March, 2039 after 20 years, 05 months and 20 days from today.
echo 'It will be '.$now->format('l, d F, Y').' after '.$the_interval->format("%Y years, %M months and %d days").' from today.';

?>

您还可以使用比较运算符来比较 PHP 中的日期。这有时会派上用场。让我们使用比较运算符和其他 DateTime 方法创建一个圣诞节计数器。

 $christmas) {
    $christmas->add(new DateInterval('P1Y'));
}

if($now < $christmas) {
    $interval = $now->diff($christmas);
    echo $interval->format('%a days').' until Christmas!';
}

if($now == $christmas) {
    echo 'Merry Christmas :)';
}

// Output — 103 days until Christmas!

?>

我们首先创建两个 DateTime 对象来存储当前时间和今年圣诞节的日期。之后,我们运行 while 循环,不断向 2018 年圣诞节日期添加 1 年,直到当前日期小于圣诞节日期。当代码在 2024 年 1 月 18 日运行时,这将很有帮助。只要圣诞节日期小于运行此脚本时的当前日期,while 循环就会增加圣诞节日期。

我们的圣诞节计数器现在可以在未来几十年内正常工作,不会出现任何问题。

有关 PHP 中 date() 的常见问题

关于从 PHP 中的 date() 函数获取不同类型的信息,时不时会出现一些常见问题。我们将尽力在这里回答所有问题。

如何获取 PHP 中的当前年份?

您可以使用 date('y')date('Y') 获取 PHP 中的当前年份。使用大写字母 Y 将为您提供当前年份的所有数字,例如 2021。使用小y只会给出最后两位数字,例如21


在 PHP 中获取当前月份的正确方法是什么?

在 PHP 中,有四种不同的字符用于获取当前月份,具体取决于您想要的格式。您可以使用大写字母 F 获取月份的完整名称,例如 February,或者使用 M 获取较短的三字母格式的月份

您还可以使用mn以数字形式获取当前月份,这将分别为您提供带前导零和不带前导零的月份。


如何用 PHP 获取星期几?

您还可以通过使用四个不同的字符来获取 PHP 中的星期几。大写字母 D 将用三个字母表示一周中的某一天,例如 MonTue。使用 l(小写 L)将为您提供一周中某一天的全名。

您可以使用 w 获取一周中各天的 0(星期日)和 6(星期六)之间的数值>.


如何在 PHP 中获取 12 小时格式的当前时间?

您可以使用 gh 获取 12 小时格式的当前时间。使用g,您将获得不带任何前导零的时间,而h将添加一些前导零。可以使用a(小写字母)或A(大写字母)添加 AM 或 PM。


我可以在 PHP 中获取 24 小时格式的当前时间吗?

使用字符GH将为您提供24小时格式的当前小时。 G 不会出现任何前导零,但 H 会添加前导零。


转义日期格式字符的最佳方法是什么?

date() 函数接受字符串作为参数,但许多字符都有明确定义的含义,例如 Y 表示年份,F 表示年份月。这意味着直接使用这些字符作为字符串的一部分可能并不总是能获得所需的结果。

如果您希望 date() 函数输出这些字符,那么您必须先对它们进行转义。这是一个例子:


某些字符(例如 t)需要两个反斜杠,因为 \t 用于制表符。如果可能,建议将您想要回显的常规字符串放在 date() 之外。否则,您将转义很多字符。

最终想法

在本教程中,我们学习了如何使用 date() 函数以所需格式输出当前日期和时间。我们还看到 date() 也可用于仅获取当前年份、月份等。之后,我们学习了如何获取当前时间戳或将有效的 DateTime 字符串转换为时间戳。最后,我们学习了如何从不同的日期中添加或减去一段时间。

我尝试在此处介绍关键的 DateTime 函数和方法。您绝对应该查看文档以了解本教程中未涵盖的功能。如果您有任何疑问,请随时在评论中告诉我。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

0

2026.01.26

windows安全中心怎么关闭 windows安全中心怎么执行操作
windows安全中心怎么关闭 windows安全中心怎么执行操作

关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

0

2026.01.26

2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

1

2026.01.26

个人所得税税率表2026 个人所得税率最新税率表
个人所得税税率表2026 个人所得税率最新税率表

以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

1

2026.01.26

oppo云服务官网登录入口 oppo云服务登录手机版
oppo云服务官网登录入口 oppo云服务登录手机版

oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

1

2026.01.26

抖币充值官方网站 抖币性价比充值链接地址
抖币充值官方网站 抖币性价比充值链接地址

网页端充值步骤:打开浏览器,输入https://www.douyin.com,登录账号;点击右上角头像,选择“钱包”;进入“充值中心”,操作和APP端一致。注意:切勿通过第三方链接、二维码充值,谨防受骗

3

2026.01.26

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

25

2026.01.26

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

76

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

78

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号