PHP - 日期和时间:初学者指南

你好,有抱负的PHP开发者们!今天,我们将深入PHP中日期和时间的迷人世界。作为你友好的计算机老师邻居,我将通过清晰的解释、大量的示例,甚至可能沿途讲一两个笑话,来引导你完成这次旅行。所以,拿出你的虚拟日历,让我们开始吧!

PHP - Date & Time

理解编程中日期和时间的重要性

在我们深入了解之前,让我分享一个快速的故事。当我第一次开始教PHP时,我有一个学生构建了一个漂亮的博客应用程序。一切工作得都很好,除了一个小细节——所有的帖子都显示相同的时间戳!原来,处理日期和时间在许多应用程序中都是至关重要的,从调度系统到社交媒体平台。这就是为什么掌握PHP的日期和时间函数如此重要。

使用time()获取时间戳

让我们从基础开始。在PHP中,我们经常使用一个叫做“时间戳”的东西。把它想象成一个表示特定时刻的大数字。time()函数是我们获取当前时间戳的常用工具。

示例 1:使用time()

<?php
$current_timestamp = time();
echo "当前的时间戳是:" . $current_timestamp;
?>

如果你运行这段代码,你将看到类似这样的输出:

当前的时间戳是:1623456789

现在,我知道你在想什么:“这只是一个大数字!这有什么用?” 好吧,好奇的朋友,这个数字代表了自1970年1月1日(也称为“Unix纪元”)以来过去的秒数。它可能看起来不漂亮,但它对于计算和比较非常有用。

使用getdate()转换时间戳

好的,我们有这个时间戳,但我们如何将其转换为人类实际上可以阅读的东西呢?这就是getdate(),我们友好的时间转换器的作用!

示例 2:使用getdate()

<?php
$current_timestamp = time();
$date_array = getdate($current_timestamp);
print_r($date_array);
?>

这将输出类似这样的内容:

数组
(
[seconds] => 30
[minutes] => 46
[hours] => 14
[mday] => 12
[wday] => 6
[mon] => 6
[year] => 2023
[yday] => 162
[weekday] => Saturday
[month] => June
[0] => 1623456789
)

哇,这是一个信息量很大的数组!getdate()接受我们的时间戳并将其分解成一个包含各种有用信息的数组。这就像打开一盒各种巧克力的盒子——每个人都能找到自己喜欢的东西!

以更易读的方式使用getdate()

让我们使这些信息变得更用户友好一些:

<?php
$current_timestamp = time();
$date_array = getdate($current_timestamp);
echo "今天是" . $date_array['weekday'] . "," . $date_array['month'] . " " . $date_array['mday'] . "," . $date_array['year'];
?>

这将输出:

今天是Saturday,June 12,2023

好多了,对吧?现在我们在说人类的语言!

使用date()转换时间戳

虽然getdate()很好,但有时我们希望对日期和时间的格式有更多的控制。这就是date()函数的用武之地。它就像一个时间格式化的瑞士军刀!

示例 3:date()的基本用法

<?php
$current_timestamp = time();
echo date("Y-m-d H:i:s", $current_timestamp);
?>

这将输出类似这样的内容:

2023-06-12 14:46:30

这里的魔法在于格式字符串"Y-m-d H:i:s"。每个字母代表日期或时间的不同部分。就像一个秘密代码,但别担心,我会让你了解这个秘密!

常用的date()格式字符

以下是一些常见格式字符的便捷表格:

字符 描述 示例
Y 四位年份 2023
m 月份(01-12) 06
d 月份中的日(01-31) 12
H 24小时格式的小时(00-23) 14
i 分钟(00-59) 46
s 秒钟(00-59) 30
l 星期的全名 Saturday
F 月份的全名 June

示例 4:创意使用date()

让我们在格式化上玩点乐趣:

<?php
$current_timestamp = time();
echo "现在是" . date("l, F jS, Y \a\\t g:i A", $current_timestamp);
?>

这可能会输出:

现在是Saturday, June 12th, 2023 at 2:46 PM

看看那!我们创建了一个友好、可读的日期格式。格式字符串中的\a\\t是一个转义的'at'——它就像告诉PHP,“不,我实际上是想在这里打印单词'at',而不是用作格式字符。”

结论

好了,各位!我们已经穿越了PHP的日期和时间领域,从谦卑的时间戳到美丽的日期字符串。记住,处理日期和时间都是关于实践的。不要害怕尝试不同的格式和函数。

在我让你离开之前,这里有一个关于PHP日期的幽默笑话:为什么PHP开发者会和他们的日期分手?因为他们找不到正确的格式!?

继续编码,继续学习,最重要的是,享受其中的乐趣!下次见,这是你友好的计算机老师邻居说再见。

Credits: Image by storyset