Unix 时间戳与 date()
获取当前时间的 Unix 时间戳,并使用 date() 对其进行格式化。
Unix 时间戳与 date() 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。
PHP 中的时间
PHP 将时间表示为 Unix 时间戳 — 即自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来经过的秒数。主要函数:
time()— 当前 Unix 时间戳date($format, $timestamp)— 格式化时间戳mktime()— 根据日期各部分创建时间戳
time()
获取当前 Unix 时间戳:
<?php
$now = time();
echo $now; // e.g. 1716800000
echo gettype($now); // integer
// 1 day in seconds
$tomorrow = time() + 86400;
$yesterday = time() - 86400;
echo date('Y-m-d', $tomorrow); // tomorrow's datedate() 格式字符
date() 的常用格式字符:
Y— 4 位年份:2024m— 带前导零的月份:01–12d— 带前导零的日期:01–31H— 带前导零的 24 小时制小时i— 带前导零的分钟s— 秒D— 星期名称缩写:MonN— ISO 星期值:1=星期一,7=星期日
格式化日期
使用 date() 格式化时间戳:
<?php
$ts = time();
echo date('Y-m-d', $ts); // 2024-05-27
echo date('d/m/Y', $ts); // 27/05/2024
echo date('D, d M Y H:i:s', $ts); // Mon, 27 May 2024 14:30:00
echo date('c', $ts); // ISO 8601: 2024-05-27T14:30:00+00:00
echo date('U', $ts); // Unix timestamp (same as time())mktime()
根据指定的日期和时间组成部分创建时间戳:
<?php
// mktime(hour, min, sec, month, day, year)
$ts = mktime(0, 0, 0, 12, 25, 2024); // Christmas 2024 midnight
echo date('Y-m-d', $ts); // 2024-12-25
// Last day of month trick:
$lastDay = mktime(0, 0, 0, 3, 0, 2024); // day 0 = last day of Feb
echo date('Y-m-d', $lastDay); // 2024-02-29 (leap year)strtotime()
strtotime() 将人类可读的日期字符串转换为时间戳:
<?php
echo strtotime('2024-12-25'); // timestamp
echo strtotime('next Monday'); // next Monday's timestamp
echo strtotime('+1 week'); // 7 days from now
echo strtotime('last day of this month'); // end of month
echo strtotime('2024-01-01 +3 months'); // April 1, 2024使用 strtotime 进行日期运算
使用 strtotime 的相对表达式计算相对日期:
<?php
$subscriptionStart = strtotime('2024-01-15');
$oneYearLater = strtotime('+1 year', $subscriptionStart);
$trialEnd = strtotime('+14 days');
echo date('Y-m-d', $oneYearLater); // 2025-01-15
echo date('Y-m-d', $trialEnd); // 14 days from today
// Days until event:
$event = strtotime('2024-12-31');
$daysLeft = (int) (($event - time()) / 86400);
echo "Days until NYE: $daysLeft";时间戳与数据库
将日期以 ISO 字符串或 Unix 时间戳的形式存储在数据库中:
<?php
// Store as ISO string (recommended for readability):
$created_at = date('Y-m-d H:i:s'); // '2024-05-27 14:30:00'
// Store as Unix timestamp (fast integer comparison):
$created_ts = time(); // 1716800000
// Convert back:
$ts = strtotime($created_at);
$fmt = date('Y-m-d H:i:s', $created_ts);date_create 与 date_format
date() 和 strtotime() 的面向对象替代方案:
<?php
$dt = date_create('2024-05-27');
echo date_format($dt, 'D, d M Y'); // Mon, 27 May 2024
date_modify($dt, '+30 days');
echo date_format($dt, 'Y-m-d'); // 2024-06-26
// Equivalent OO:
$dt2 = new DateTime('2024-05-27');
$dt2->modify('+30 days');
echo $dt2->format('Y-m-d');checkdate()
使用 checkdate() 验证日期是否真实有效:
<?php
var_dump(checkdate(2, 29, 2024)); // true (leap year)
var_dump(checkdate(2, 29, 2023)); // false (not leap year)
var_dump(checkdate(13, 1, 2024)); // false (no month 13)
var_dump(checkdate(1, 31, 2024)); // true用于基准测试的 Microtime
使用 microtime(true) 以亚秒级精度测量执行时间:
<?php
$start = microtime(true);
// Simulate work
for ($i = 0; $i < 100000; $i++) {}
$end = microtime(true);
$duration = ($end - $start) * 1000; // milliseconds
echo sprintf('Took %.2f ms', $duration);快速检查
PHP 的 time() 函数返回什么?
回顾:Unix 时间戳与 date()
要点:
time()— 当前 Unix 时间戳date($format, $ts)— 格式化任意时间戳mktime()— 根据日期各部分构建时间戳strtotime()— 解析人类可读的日期- 使用 ISO 8601 格式存储数据库数据
- 使用
microtime(true)进行高精度计时
常见问题解答
「Unix 时间戳与 date()」课时是免费的吗?
是的 — 「Unix 时间戳与 date()」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。
「Unix 时间戳与 date()」这节课中我会学到什么?
获取当前时间的 Unix 时间戳,并使用 date() 对其进行格式化。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 PHP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「Unix 时间戳与 date()」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 PHP Academy 课中编写并运行代码吗?
能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Unix 时间戳与 date()
- DateTime 类
- 使用 DateInterval 进行日期运算
- PHP 中的时区