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);
?>

這將輸出類似於:

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