服务端(PHP)函数_时间操作

文档概述

轻语言网站**后端(PHP)**开发中的时间操作相关函数、用于处理时间和日期数据,包含时间戳操作、时间对象创建、时间格式化、时间差计算、日期时间设置等功能,常用于时间显示、日期计算、时间格式化等场景。

⚠️ 使用限制说明

  • 本文档内函数仅限在轻语言后端文件 .sph 代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。
  • 不得在编写前端页面 .spl 代码中使用,更禁止与 JS 代码混合使用
  • 编写前端请使用 前端(JavaScript)函数_* 类目下的中文函数;服务端只能使用 服务端(PHP)函数_* 类目下的中文函数。
  • 前后端虽存在同名函数(如 创建时间对象取时间差格式化时间),但底层实现与运行环境完全不同,严禁混用。

💡 PHP 原生英文函数使用说明

  • 轻语言后端支持直接调用 PHP 原生英文函数(如 print_r()date()mktime()checkdate() 等)。
  • 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
  • 仅支持使用原生英文函数名严禁使用 PHP 原生语法格式和英文关键字(如 if(){}for(){}functionclassecho 等控制结构与语法关键字)。
  • 控制结构必须使用轻语言中文关键字:如果...否则...结束 如果变量循环...结束循环函数 ... 结束 函数 等。
  • 注:->(对象方法调用,如 时间对象->format())、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。

PHP 时间相关特性:

  • 时间戳取现行时间戳 返回当前10位Unix时间戳(秒级),对应 PHP time()
  • 时间对象创建时间对象 基于 PHP DateTime 类;通过 对象->format()/对象->getTimestamp() 调用方法
  • 格式化模板格式化时间 基于 PHP date(),模板字符如 Y-m-d H:i:sY年m月d日
  • 相对时间到时间戳 支持英文相对描述("+1 day"、"-1 week"),基于 PHP strtotime()
  • 时区:后端默认服务器时区;可通过 置响应头 或 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操作 —— 数据库时间字段读写
  • 文档轻语言网站:变量与数组与对象的定义 —— 变量、对象、数组的基本语法