Skip to content

日期函数

用于处理日期和时间的函数。

日期对象

时间戳年月日年月日时分秒转换为日期对象。

  • 用法

    • HZ_DATE(timestamp) 只提供1个参数,参数为时间戳
    • HZ_DATE(year, month, day) 提供3个参数,参数分别是 年、月、日
    • HZ_DATE(year, month, day, hour, minute, second) 提供6个参数,参数分别是 年、月、日、时、分、秒
  • 用法(1)

    • timestamp 时间戳
  • 用法(2)

    • year 年份
    • month 月份
    • day 天数
  • 用法(3)

    • year 年份
    • month 月份
    • day 天数
    • hour 小时
    • minute 分钟
    • second 秒钟
  • 返回值:date

  • 示例

    HZ_DATE(2015, 11, 1)

    HZ_DATE(1448899200000)

    HZ_DATE(2015, 11, 1, 0, 0, 0)

    这三个都表示 Sun Nov 01 2015 00:00:00 GMT+0800 (中国标准时间)

获取时间戳

将日期对象转换成时间戳。

  • 用法

    HZ_TIMESTAMP(date)

  • 参数

    • date 日期对象
  • 返回值:number

  • 示例

    HZ_TIMESTAMP(HZ_NOW())

时间

返回特定时间的十进制数字。时间值为日期值的一部分,并用十进制数表示(例如 12:00 PM 可表示为 0.5,因为此时是一天的一半)。

  • 用法

    HZ_TIME(hour, minute, second)

  • 参数

    • hour 必需。 0(零)到 32767 之间的数字,代表小时。任何大于 23 的值都会除以 24,余数将作为小时值。
    • minute 必需。 032767 之间的数字,代表分钟。任何大于 59 的值将转换为小时和分钟。
    • second 必需。 032767 之间的数字,代表秒。任何大于 59 的值将转换为小时、分钟和秒。
  • 返回值:number

  • 示例

    HZ_TIME(27, 0, 0) == HZ_TIME(3, 0, 0) == 0.125

    HZ_TIME(0, 750, 0) == HZ_TIME(12, 30, 0) == 0.520833

    HZ_TIME(0, 0, 2000) == HZ_TIME(0, 33, 20) == 0.023148

返回今天

返回今天。精确到天。

  • 用法

    HZ_TODAY()

  • 返回值:date

  • 示例

    HZ_TIMESTAMP(HZ_TODAY())

当前时间

返回当前时间。精确到毫秒。

  • 用法

    HZ_NOW()

  • 返回值:date

  • 示例

    HZ_TIMESTAMP(HZ_NOW())

服务器时间

返回当前服务器时间。即使客户端的时间被人为调整了,HZ_SYSTIME函数也不受影响,获取的仍然是服务器时间。例如签到、打卡等场景下,可避免调整时间作弊的情况。

  • 用法

    HZ_SYSTIME()

  • 返回值:date

  • 示例

    服务器时间 == HZ_SYSTIME()

年份

返回某日期的年份。

  • 用法

    HZ_YEAR(timestamp)

  • 参数

    • timestamp 时间戳
  • 返回值:number

  • 示例

    HZ_YEAR(日期时间)

月份

返回某日期的月份。月份是介于 1 到 12 之间的整数。

  • 用法

    HZ_MONTH(timestamp)

  • 参数

    • timestamp 时间戳
  • 返回值:number

  • 示例

    HZ_MONTH(日期时间)

返回某日期的天数。天数是介于 1 到 31 之间的整数。

  • 用法

    HZ_DAY(timestamp)

  • 参数

    • timestamp 时间戳
  • 返回值:number

  • 示例

    HZ_DAY(日期时间)

小时

返回某日期的小时数。

  • 用法

    HZ_HOUR(timestamp)

  • 参数

    • timestamp 时间戳
  • 返回值:number

  • 示例

    HZ_HOUR(日期时间)

分钟

返回某日期的分钟数。

  • 用法

    HZ_MINUTE(timestamp)

  • 参数

    • timestamp 时间戳
  • 返回值:number

  • 示例

    HZ_MINUTE(日期时间)

秒钟

返回某日期的秒数。

  • 用法

    HZ_SECOND(timestamp)

  • 参数

    • timestamp 时间戳
  • 返回值:number

  • 示例

    HZ_SECOND(日期时间)

相隔天数

返回两个日期之间的天数。

  • 用法

    HZ_DAYS(end_timestamp, start_timestamp)

  • 参数

    • end_timestamp 结束日期。
    • start_timestamp 起始日期。
  • 返回值:number

  • 示例

    HZ_DAYS(结束时间, 开始时间) 返回值的天数为正整数。

日期相差天数

按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),HZ_DAYS360 函数返回两个日期间相差的天数,这在一些会计计算中将会用到。 如果财会系统是基于一年 12 个月,每月 30 天,可使用此函数帮助计算支付款项。

  • 用法

    HZ_DAYS360(end_timestamp, start_timestamp, method)

  • 参数

    • end_timestamp 结束日期。
    • start_timestamp 起始日期。
    • method 用于指定在计算中是采用美国方法还是欧洲方法。不填或false表示是美国方法,true表示是欧洲方法。
  • 返回值:number

  • 备注

    • 美国方法(NASD): 如果起始日期是一个月的最后一天, 则等于同月的30号. 如果终止日期是一个月的最后一天, 并且起始日期早于30号, 则终止日期等于下一个月的1号, 否则, 终止日期等于本月的30号
    • 欧洲方法: 如果起始日期和终止日期为某月的31号, 则等于当月的30号

日期操作

将指定日期加/减指定天数。

  • 用法

    HZ_DATEDELTA(timestamp, deltadays)

  • 参数

    • timestamp 初始日期。
    • deltadays 需要加减的天数。正数为增加,负数为减少。
  • 返回值:date

  • 示例

    HZ_DATEDELTA(日期时间, 5)

周数

返回特定日期的周数。例如,包含1月1日的周为该年的第1周,其编号为第1周。

  • 用法

    HZ_WEEKNUM(timestamp, return_type)

  • 参数

    • timestamp 指定日期。代表一周中的日期。应使用HZ_DATE函数输入日期,或者将日期作为其他公式或函数的结果输入

    • return_type 一数字,确定星期从哪一天开始。默认值为1

      • 1 表示周日为一周的第一天,
      • 2 表示周一为一周的第一天,
      • ...
      • 7 表示周六为一周的第一天
  • 返回值:number

  • 示例

    从星期日开始计算周次 HZ_WEEKNUM(日期)

    从星期一开始计算周次 HZ_WEEKNUM(日期, 2)

2018年1月份日历:(周一为每周的第一天)

周次|周一|周二|周三|周四|周五|周六|周日 -|:-😐:-😐:-😐:-😐:-😐:-😐:-😐- 第一周|1|2|3|4|5|6|7 第二周|8|9|10|11|12|13|14 第三周|15|16|17|18|19|20|21 第四周|22|23|24|25|26|27|28 第五周|29|30|31

2018年1月份日历:(周日为每周的第一天)

周次|周日|周一|周二|周三|周四|周五|周六 -|:-😐:-😐:-😐:-😐:-😐:-😐:-😐- 第一周| |1 |2 |3 |4 |5 |6 第二周|7 |8 |9 |10|11|12|13 第三周|14|15|16|17|18|19|20 第四周|21|22|23|24|25|26|27 第五周|28|29|30|31

ISO周数

返回给定日期在全年中的ISO周数。ISO周数指国际标准周。定义请参考:https://en.wikipedia.org/wiki/ISO_week_date

  • 用法

    HZ_ISOWEEKNUM(timestamp)

  • 参数

    • timestamp 日期是Excel用于日期和时间计算的日期-时间代码。
  • 返回值:number

  • 示例

    HZ_ISOWEEKNUM(HZ_DATE(2018, 2, 23)) 结果为: 8

    HZ_ISOWEEKNUM(HZ_DATE(2018, 2, 26)) 结果为: 9

    结果不同是因为ISO标准中的日期和各地区的日期相差有时差。