第 3 章 · 函数 · 第 3.3 课
数学、日期与格式化
数学函数
| 函数 | 例子 | 结果 |
|---|---|---|
round($x, $n) | round(3.14159, 2) | 3.14 |
floor / ceil | floor(4.7) / ceil(4.2) | 4 / 5 |
abs | abs(-8) | 8 |
sqrt | sqrt(16) | 4 |
number_format($x, $n) | number_format(1234567.891, 2) | 1,234,567.89 |
random_int($min, $max) | random_int(1, 6) | 1 到 6 之间的随机整数 |
日期和时间
date(格式) 把时间格式化成字符串,常用格式字符:Y 四位年、m 两位月、d 两位日、H:i:s 时分秒、n / j 不补零的月和日。
strtotime 能读懂很多英文写法,比如 "+1 week"、"next monday"。需要计算两个日期之间的差时,用 DateTime 类更方便。
运行环境默认是 UTC 时区,先用 date_default_timezone_set('Asia/Shanghai') 设成北京时间。
选择题
number_format(1999.5) 的结果是?
练习 1
文件大小
已通过写函数 formatBytes(int $bytes): string,把字节数转成易读的形式:
- 小于 1024:
"512 B" - 小于 1024 × 1024:以 KB 为单位,保留 1 位小数,如
"1.5 KB" - 否则以 MB 为单位,保留 1 位小数,如
"4.8 MB"
练习 2
算年龄
已通过写函数 age(string $birthday, string $today): int,返回周岁。生日还没到就不算长一岁:
age('2000-06-15', '2024-06-14')→ 23age('2000-06-15', '2024-06-15')→ 24