服务端(PHP)函数_时间操作
文档概述
轻语言网站**后端(PHP)**开发中的时间操作相关函数、用于处理时间和日期数据,包含时间戳操作、时间对象创建、时间格式化、时间差计算、日期时间设置等功能,常用于时间显示、日期计算、时间格式化等场景。
⚠️ 使用限制说明:
- 本文档内函数仅限在轻语言后端文件
.sph代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。- 不得在编写前端页面
.spl代码中使用,更禁止与 JS 代码混合使用。- 编写前端请使用
前端(JavaScript)函数_*类目下的中文函数;服务端只能使用服务端(PHP)函数_*类目下的中文函数。- 前后端虽存在同名函数(如
创建时间对象、取时间差、格式化时间),但底层实现与运行环境完全不同,严禁混用。
💡 PHP 原生英文函数使用说明:
- 轻语言后端支持直接调用 PHP 原生英文函数(如
print_r()、date()、mktime()、checkdate()等)。- 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
- 仅支持使用原生英文函数名,严禁使用 PHP 原生语法格式和英文关键字(如
if(){}、for(){}、function、class、echo等控制结构与语法关键字)。- 控制结构必须使用轻语言中文关键字:
如果...否则...结束 如果、变量循环...结束循环、函数 ... 结束 函数等。- 注:
->(对象方法调用,如时间对象->format())、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。
PHP 时间相关特性:
- 时间戳:
取现行时间戳返回当前10位Unix时间戳(秒级),对应 PHPtime() - 时间对象:
创建时间对象基于 PHPDateTime类;通过对象->format()/对象->getTimestamp()调用方法 - 格式化模板:
格式化时间基于 PHPdate(),模板字符如Y-m-d H:i:s、Y年m月d日 - 相对时间:
到时间戳支持英文相对描述("+1 day"、"-1 week"),基于 PHPstrtotime() - 时区:后端默认服务器时区;可通过
置响应头或 PHP 配置调整 - 方法调用语法:时间对象方法用
->调用(PHP 风格);前端 JS 用.调用
函数:取现行时间戳()
返回当前10位时间戳。
' 获取当前时间戳
变量 当前时间戳 = 取现行时间戳()
输出 "当前时间戳: " + 当前时间戳
' 显示时间戳格式的时间
变量 格式化 = 格式化时间("Y-m-d H:i:s", 当前时间戳)
输出 "当前时间: " + 格式化
函数:创建时间对象(文本时间)
根据指定的文本时间内容创建一个新的时间对象"DateTime ";如果参数设置为空、则默认使用当前时间创建。
' 创建指定日期的时间对象
变量 特定时间 = 创建时间对象("2023-12-25")
' 注:->format() 为 PHP DateTime 类的方法调用,轻语言支持直接使用
输出 "特定时间: " + 特定时间->format("Y-m-d")
' 创建当前时间的时间对象
变量 当前时间 = 创建时间对象()
输出 "当前时间: " + 当前时间->format("Y-m-d H:i:s")
' 获取创建的时间对象的时间戳
变量 时间戳 = 当前时间->getTimestamp()
输出 "时间戳: " + 时间戳
函数:置日期(时间对象,年,月,日)
修改指定时间对象为一个新的日期。
' 创建一个时间对象并修改日期
变量 时间对象 = 创建时间对象("2022-01-01")
置日期(时间对象, 2023, 6, 15)
' 注:->format() 为 PHP DateTime 类方法
变量 修改后时间 = 时间对象->format("Y-m-d H:i:s")
输出 "修改后的日期: " + 修改后时间
函数:置时间(时间对象,时,分,秒)
将指定的时间对象;重新设置为指定的时间时分秒。
' 创建一个时间对象并修改时间
变量 时间对象 = 创建时间对象("2023-01-01 00:00:00")
置时间(时间对象, 14, 30, 45)
变量 修改后时间 = 时间对象->format("Y-m-d H:i:s")
输出 "修改后时间: " + 修改后时间
函数:取时间差(时间对象一,时间对象二)
返回两个日期间的差值;单位:天。
' 计算两个日期之间的天数差
变量 日期1 = 创建时间对象("2023-01-01")
变量 日期2 = 创建时间对象("2023-01-10")
变量 天数差 = 取时间差(日期2, 日期1)
输出 "两个日期相差: " + 天数差 + "天"
函数:格式化时间(模板,时间戳)
将指定的时间戳格式化为指定模板的时间。
' 格式化时间戳为不同格式(注:模板字符基于 PHP date() 函数)
变量 当前时间戳 = 取现行时间戳()
' 格式化为完整日期时间
变量 完整时间 = 格式化时间("Y-m-d H:i:s", 当前时间戳)
输出 "完整时间: " + 完整时间
' 格式化为日期
变量 仅日期 = 格式化时间("Y年m月d日", 当前时间戳)
输出 "仅日期: " + 仅日期
' 格式化为时间
变量 仅时间 = 格式化时间("H:i:s", 当前时间戳)
输出 "仅时间: " + 仅时间
函数:取时间戳数组(时间戳)
返回指定时间戳的数组时间信息。
' 获取时间戳的详细信息数组(注:基于 PHP getdate() 返回关联数组)
变量 当前时间戳 = 取现行时间戳()
变量 时间数组 = 取时间戳数组(当前时间戳)
输出数组(时间数组)
' 提取数组中的年月日信息
变量 年份 = 时间数组["year"]
变量 月份 = 时间数组["mon"]
变量 日期 = 时间数组["mday"]
输出 "今天是" + 年份 + "年" + 月份 + "月" + 日期 + "日"
函数:到时间戳(文本时间)
将任何英文文本的日期或时间描述解析为 Unix 时间戳。
' 将文本时间转换为时间戳(注:基于 PHP strtotime(),支持英文相对描述)
变量 文本时间 = "2023-12-25 15:30:00"
变量 时间戳 = 到时间戳(文本时间)
输出 "文本时间: " + 文本时间
输出 "对应时间戳: " + 时间戳
输出 "格式化回来: " + 格式化时间("Y-m-d H:i:s", 时间戳)
' 使用相对时间描述(PHP特色:strtotime 支持英文相对描述)
变量 相对时间戳 = 到时间戳("+1 day") ' 一天后
输出 "一天后: " + 格式化时间("Y-m-d H:i:s", 相对时间戳)
变量 一周前时间戳 = 到时间戳("-1 week") ' 一周前
输出 "一周前: " + 格式化时间("Y-m-d H:i:s", 一周前时间戳)
学习要点
| 知识点 | 代码示例 | 说明 |
|---|---|---|
| 当前时间戳 | 取现行时间戳() | 10位Unix时间戳(秒级);对应 PHP time() |
| 时间对象创建 | 创建时间对象("2023-12-25") | 基于 PHP DateTime 类;空参数为当前时间 |
| 对象方法调用 | 对象->format("Y-m-d") | PHP风格 -> 调用;format() 格式化、getTimestamp() 取戳 |
| 日期修改 | 置日期(对象, 年, 月, 日) | 修改时间对象的日期部分;原对象被修改 |
| 时间修改 | 置时间(对象, 时, 分, 秒) | 修改时间对象的时分秒部分 |
| 时间差计算 | 取时间差(对象A, 对象B) | 返回 A-B 天数差;单位为天 |
| 格式化模板 | "Y-m-d H:i:s" / "Y年m月d日" | 基于 PHP date();Y年、m月、d日、H时、i分、s秒 |
| 时间戳数组 | 取时间戳数组(戳)["year"] | 基于 PHP getdate();返回关联数组含 year/mon/mday 等 |
| 文本转时间戳 | 到时间戳("2023-12-25 15:30:00") | 基于 PHP strtotime();支持标准格式与英文相对描述 |
| 相对时间描述 | 到时间戳("+1 day") / 到时间戳("-1 week") | PHP特色:strtotime 解析 "+1 day"、"-1 week"、"+1 month" |
| 输出函数 | 输出 值 / 输出数组(数组) | 后端输出到响应体;对应 PHP echo/print_r |
相关文档
- 文档
服务端(PHP)函数_字符串操作—— 后端字符串处理函数 - 文档
服务端(PHP)函数_数组操作—— 后端数组操作函数 - 文档
服务端(PHP)函数_核心库函数——格式化内容、置全局变量等核心函数 - 文档
服务端(PHP)函数_文件操作—— 文件读写、日志记录 - 文档
服务端(PHP)函数_MYSQL操作—— 数据库时间字段读写 - 文档
轻语言网站:变量与数组与对象的定义—— 变量、对象、数组的基本语法