CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 纪念品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与其中
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 新闻通讯
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C Chronos 3.x API

  • 项目
    • Chronos
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 3.x
      • 3.x
      • 2.x
      • 1.x

命名空间

  • Cake\Chronos

类 Chronos

对原生 DateTime 对象的不可变扩展。

添加了一些方便的 API 方法,以及轻松转换为可变对象的选项。

命名空间: Cake\Chronos

常量

  • int
    DAYS_PER_WEEK ¶
    7
  • string
    DEFAULT_TO_STRING_FORMAT ¶
    'Y-m-d H:i:s'

    当类型转换发生时,用于 __toString 方法的默认格式。

  • int
    FRIDAY ¶
    5
  • int
    HOURS_PER_DAY ¶
    24
  • int
    MINUTES_PER_HOUR ¶
    60
  • int
    MONDAY ¶
    1
  • int
    MONTHS_PER_QUARTER ¶
    3
  • int
    MONTHS_PER_YEAR ¶
    12
  • int
    SATURDAY ¶
    6
  • int
    SECONDS_PER_MINUTE ¶
    60
  • int
    SUNDAY ¶
    7
  • int
    THURSDAY ¶
    4
  • int
    TUESDAY ¶
    2
  • int
    WEDNESDAY ¶
    3
  • int
    WEEKS_PER_YEAR ¶
    52
  • int
    YEARS_PER_CENTURY ¶
    100
  • int
    YEARS_PER_DECADE ¶
    10

属性摘要

  • $age public @property-read
    int

    使用默认参数执行 diffInYears()

  • $day public @property-read
    int<1, 31>
  • $dayOfWeek public @property-read
    int<1, 7>

    1(星期一)到 7(星期日)

  • $dayOfYear public @property-read
    int<0, 365>

    0 到 365

  • $days protected static
    array

    一周中各天的名称。

  • $daysInMonth public @property-read
    int<1, 31>

    给定月份的天数

  • $diffFormatter protected static
    Cake\Chronos\DifferenceFormatterInterface|null

    差异格式化对象的实例。

  • $dst public @property-read
    bool

    夏令时指示器,如果为夏令时,则为 true,否则为 false

  • $half public @property-read
    int<1, 2>

    一年中的半部分,1 代表 1 月到 6 月,2 代表 7 月到 12 月。

  • $hour public @property-read
    int<0, 23>
  • $lastErrors protected static
    array|false

    上次调用 createFromFormat() 时的错误。

  • $local public @property-read
    bool

    检查时区是否为本地时区,如果为本地时区,则为 true,否则为 false

  • $micro public @property-read
    int<0, 999999>
  • $microsecond public @property-read
    int<0, 999999>
  • $minute public @property-read
    int<0, 59>
  • $month public @property-read
    int<1, 12>
  • $offset public @property-read
    int

    相对于 UTC 的时区偏移量(以秒为单位)

  • $offsetHours public @property-read
    int

    相对于 UTC 的时区偏移量(以小时为单位)

  • $quarter public @property-read
    int<1, 4>

    此实例的季度,1 - 4

  • $relativePattern protected static
    string

    相对时期的正则表达式。

  • $second public @property-read
    int<0, 59>
  • $testNow protected static
    Cake\Chronos\Chronos|null

    在创建 now 实例时返回的测试 Chronos 实例

  • $timestamp public @property-read
    int

    自 Unix 纪元以来的秒数

  • $timezone public @property-read
    DateTimeZone

    当前时区

  • $timezoneName public @property-read
    string
  • $toStringFormat protected static
    string

    当类型转换发生时,用于 __toString 方法的格式。

  • $tz public @property-read
    DateTimeZone

    时区的别名

  • $tzName public @property-read
    string
  • $utc public @property-read
    bool

    检查时区是否为 UTC,如果为 UTC,则为 true,否则为 false

  • $weekEndsAt protected static
    int

    一周的最后一天

  • $weekOfMonth public @property-read
    int<1, 5>

    1 到 5

  • $weekOfYear public @property-read
    int<1, 53>

    ISO-8601 年份中的周数,周从星期一开始

  • $weekStartsAt protected static
    int

    一周的第一天

  • $weekendDays protected static
    array

    周末日期

  • $year public @property-read
    int
  • $yearIso public @property-read
    int

方法概要

  • __construct() public

    创建一个新的 Chronos 实例。

  • __debugInfo() public

    返回用于调试的属性。

  • __get() public

    获取对象的一部分

  • __isset() public

    检查对象上是否存在属性

  • __toString() public

    返回由 setToStringFormat() 指定的格式化字符串或默认的 DEFAULT_TO_STRING_FORMAT 格式。

  • addDays() public

    在实例中添加天数。正数 $value 向前移动,负数 $value 向后移动。

  • addHours() public

    在实例中添加小时。正数 $value 向前移动,负数 $value 向后移动。

  • addMinutes() public

    在实例中添加分钟。正数 $value 向前移动,负数 $value 向后移动。

  • addMonths() public

    在实例中添加月份。正数 $value 向前移动,负数 $value 向后移动。

  • addMonthsWithOverflow() public

    在实例中添加带有溢出的月份。正数 $value 向前移动,负数 $value 向后移动。

  • addSeconds() public

    在实例中添加秒数。正数 $value 向前移动,负数 $value 向后移动。

  • addWeekdays() public

    在实例中添加工作日。正数 $value 向前移动,负数 $value 向后移动。

  • addWeeks() public

    在实例中添加星期。正数 $value 向前移动,负数 $value 向后移动。

  • addYears() public

    在实例中添加年份。正数 $value 向前移动,负数 $value 向后移动。

  • addYearsWithOverflow() public

    在实例中添加带有溢出的年份。正数 $value 向前移动,负数 $value 向后移动。

  • average() public

    将当前实例修改为给定实例(默认情况下为当前实例)和当前实例的平均值。

  • between() public

    确定实例是否在另外两个实例之间

  • closest() public

    从实例中获取最接近的日期。

  • create() public static

    从特定的日期和时间创建一个实例。

  • createFromArray() public static

    从日期和时间值的数组创建一个实例。

  • createFromDate() public static

    仅从日期创建一个实例。时间部分设置为现在。

  • createFromFormat() public static

    从特定格式创建一个实例

  • createFromTime() public static

    仅从时间创建一个实例。日期部分设置为今天。

  • createFromTimestamp() public static

    从时间戳创建一个实例

  • createInterval() public static

    从指定的值创建一个新的 DateInterval 实例。

  • day() public

    设置实例的日期

  • diff() public

    返回此实例与目标实例之间的差异。

  • diffFiltered() public

    使用过滤器可调用函数获取给定间隔的差异

  • diffForHumans() public

    获取人类可读格式的差异。

  • diffFormatter() public static

    获取差异格式化程序实例或覆盖当前实例。

  • diffInDays() public

    获取天数差异

  • diffInDaysFiltered() public

    使用过滤器可调用函数获取天数差异

  • diffInHours() public

    获取小时差异

  • diffInHoursFiltered() public

    使用过滤器可调用函数获取小时差异

  • diffInMinutes() public

    获取分钟差异

  • diffInMonths() public

    获取月份差异

  • diffInMonthsIgnoreTimezone() public

    获取忽略时区的月份差异。这意味着月份是在指定的时区中计算的,没有先转换为 UTC。这可以防止日期更改,因为这可能会更改月份。

  • diffInSeconds() public

    获取秒数差异

  • diffInWeekdays() public

    获取工作日差异

  • diffInWeekendDays() public

    使用过滤器获取周末日期差异

  • diffInWeeks() public

    获取星期差异

  • diffInYears() public

    获取年份差异

  • endOfCentury() public

    将日期设置为世纪末,时间设置为 23:59:59

  • endOfDay() public

    将时间设置为 23:59:59 或 23:59:59.999999(如果 $microseconds 为真)。

  • endOfDecade() public

    将日期设置为十年末,时间设置为 23:59:59

  • endOfMonth() public

    将日期设置为月底,时间设置为 23:59:59

  • endOfWeek() public

    将日期设置为周末(在 $weekEndsAt 中定义),时间设置为 23:59:59

  • endOfYear() public

    将日期设置为年底,时间设置为 23:59:59

  • equals() public

    确定实例是否等于另一个实例

  • farthest() public

    从实例中获取最远的日期。

  • firstOfMonth() public

    修改为当前月中的给定一周的第一个日期。如果未提供 dayOfWeek,则修改为当前月的第一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • firstOfQuarter() public

    修改为当前季度中的给定一周的第一个日期。如果未提供 dayOfWeek,则修改为当前季度的第一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • firstOfYear() public

    修改为当前年份中的给定一周的第一个日期。如果未提供 dayOfWeek,则修改为当前年份的第一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • format() public

    根据 DateTimeImmutable::format() 返回格式化的日期字符串。

  • fromNow() public static

    用于获取给定时间剩余时间的便捷方法。

  • getLastErrors() public static

    返回上次 createFromFormat() 调用时的解析警告和错误。

  • getOffset() public

    返回时区偏移量。

  • getTestNow() public static

    获取在创建“现在”实例时要返回的 Chronos 实例(真实或模拟)。

  • getTimestamp() public

    获取此实例的 Unix 时间戳。

  • getTimezone() public

    返回为此实例设置的时区。

  • getWeekEndsAt() public static

    获取一周的最后一天

  • getWeekStartsAt() public static

    获取一周的第一天

  • getWeekendDays() public static

    获取周末日期

  • greaterThan() public

    确定实例是否大于(晚于)另一个实例

  • greaterThanOrEquals() public

    确定实例是否大于(晚于)或等于另一个实例

  • hasRelativeKeywords() public static

    确定时间字符串中是否存在相对关键字,这用于为测试实例创建相对于现在的日期。例如:下周二

  • hasTestNow() public static

    确定是否设置了有效的测试实例。有效的测试实例是任何不为空的值。

  • hour() public

    设置实例的小时

  • instance() public static

    从 DateTimeInterface 创建一个实例

  • isBirthday() public

    检查是否为生日。比较两个日期的日期/月份值。

  • isFirstHalf() public

    确定实例是否在今年的前半年

  • isFriday() public

    检查这一天是否为星期五。

  • isFuture() public

    确定实例是否在将来,即大于(晚于)现在

  • isLastMonth() public

    确定实例是否在上个月内

  • isLastWeek() public

    确定实例是否在上周内

  • isLastYear() public

    确定实例是否在去年内

  • isLeapYear() public

    确定实例是否为闰年

  • isMonday() public

    检查这一天是否为星期一。

  • isNextMonth() public

    确定实例是否在下个月内

  • isNextWeek() public

    确定实例是否在下周内

  • isNextYear() public

    确定实例是否在明年内

  • isPast() public

    确定实例是否在过去,即小于(早于)现在

  • isSameDay() public

    检查传入的日期是否与实例的当前日期相同。

  • isSameMonth() public

    返回传入的日期是否与当前月份和年份相同。

  • isSameYear() public

    返回传入的日期是否与当前年份相同。

  • isSaturday() public

    检查这天是否为星期六。

  • isSecondHalf() public

    判断实例是否在今年的后半年。

  • isSunday() public

    检查这天是否为星期日。

  • isThisMonth() public

    如果此对象表示当前月份内的日期,则返回 true。

  • isThisWeek() public

    如果此对象表示当前周内的日期,则返回 true。

  • isThisYear() public

    如果此对象表示当前年份内的日期,则返回 true。

  • isThursday() public

    检查这天是否为星期四。

  • isToday() public

    判断实例是否为今天。

  • isTomorrow() public

    判断实例是否为明天。

  • isTuesday() public

    检查这天是否为星期二。

  • isWednesday() public

    检查这天是否为星期三。

  • isWeekday() public

    判断实例是否为工作日。

  • isWeekend() public

    判断实例是否为周末。

  • isWithinNext() public

    如果此实例将在指定的间隔内发生,则返回 true。

  • isYesterday() public

    判断实例是否为昨天。

  • lastOfMonth() public

    修改为当前月份中给定一周的最后一天。如果未提供 dayOfWeek,则修改为当前月份的最后一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • lastOfQuarter() public

    修改为当前季度中给定一周的最后一天。如果未提供 dayOfWeek,则修改为当前季度的最后一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • lastOfYear() public

    修改为当前年份中给定一周的最后一天。如果未提供 dayOfWeek,则修改为当前年份的最后一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • lessThan() public

    判断实例是否小于(早于)另一个实例。

  • lessThanOrEquals() public

    判断实例是否小于(早于)或等于另一个实例。

  • max() public

    获取给定实例(默认现在)和当前实例之间的最大实例。

  • maxValue() public static

    为支持的最大日期创建实例。

  • microsecond() public

    设置实例的微秒。

  • min() public

    获取给定实例(默认现在)和当前实例之间的最小实例。

  • minValue() public static

    为支持的最小日期创建实例。

  • minute() public

    设置实例的分钟。

  • modify() public

    根据 DateTimeImmutable::modifier() 创建一个新的修改日期的实例。

  • month() public

    设置实例的月份。

  • next() public

    修改为给定一周的下一天。如果未提供 dayOfWeek,则修改为当前一周的下一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • notEquals() public

    判断实例是否不等于另一个实例。

  • now() public static

    获取当前日期和时间的实例。

  • nthOfMonth() public

    修改为当前月份中给定一周的给定天。如果计算出的天数超出当前月份的范围,则返回 false 且不进行任何修改。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • nthOfQuarter() public

    修改为当前季度中给定一周的给定天。如果计算出的天数超出当前季度的范围,则返回 false 且不进行任何修改。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • nthOfYear() public

    修改为当前年份中给定一周的给定天。如果计算出的天数超出当前年份的范围,则返回 false 且不进行任何修改。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • parse() public static

    从字符串创建实例。这与构造函数的别名相同,它允许更好的流畅语法,因为它允许你执行 Chronos::parse('Monday next week')->fn() 而不是 (new Chronos('Monday next week'))->fn()

  • previous() public

    修改为给定一周的先前一天。如果未提供 dayOfWeek,则修改为当前一周的先前一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

  • resetToStringFormat() public static

    将 __toString() 格式重置为 DEFAULT_TO_STRING_FORMAT。

  • rolloverTime() protected static

    更新值以保留剩余值并返回时间单位的回滚值,如果无回滚则返回 null。

  • safeCreateDateTimeZone() protected static

    从字符串或 DateTimeZone 创建 DateTimeZone。

  • second() public

    设置实例的秒。

  • secondsSinceMidnight() public

    从午夜开始的秒数。

  • secondsUntilEndOfDay() public

    到 23:59:59 的秒数。

  • setDate() public

    设置日期。

  • setDateTime() public

    设置日期和时间。

  • setISODate() public

    根据 ISO 8601 标准设置日期。

  • setTestNow() public static

    设置一个 Chronos 实例(真实或模拟),以便在创建“现在”实例时返回。在以下情况下,将返回提供的实例。

    • 调用静态 now() 方法,例如 Chronos::now()。
    • 当向构造函数或 parse() 传递 null(或空字符串)时,例如 new Chronos(null)。
    • 当向构造函数或 parse() 传递字符串“now”时,例如 new Chronos('now')。
    • 当向 Chronos::parse() 传递包含所需时间的字符串时。
  • setTime() public

    设置时间。

  • setTimeFromTimeString() public

    通过时间字符串设置时间。

  • setTimestamp() public

    根据 Unix 时间戳设置日期和时间。

  • setTimezone() public

    从字符串或对象设置实例的时区。

  • setToStringFormat() public static

    设置 __toString() 格式。

  • setWeekEndsAt() public static

    设置一周的最后一天。

  • setWeekStartsAt() public static

    设置一周的第一天。

  • setWeekendDays() public static

    设置周末。

  • startOfCentury() public

    将日期设置为世纪的第一天,并将时间设置为 00:00:00。

  • startOfDay() public

    将时间设置为 00:00:00。

  • startOfDecade() public

    将日期设置为十年的第一天,并将时间设置为 00:00:00。

  • startOfMonth() public

    将日期设置为月份的第一天,并将时间设置为 00:00:00。

  • startOfWeek() public

    将日期设置为一周的第一天(在 $weekStartsAt 中定义)并将时间设置为 00:00:00。

  • startOfYear() public

    将日期设置为年份的第一天,并将时间设置为 00:00:00。

  • subDays() public

    从实例中删除天数。

  • subHours() public

    从实例中删除小时数。

  • subMinutes() public

    从实例中删除分钟数。

  • subMonths() public

    从实例中删除月份数。

  • subMonthsWithOverflow() public

    在实例中添加带有溢出的月份。正数 $value 向前移动,负数 $value 向后移动。

  • subSeconds() public

    从实例中移除秒数。

  • subWeekdays() public

    从实例中移除工作日。

  • subWeeks() public

    从实例中移除周数。

  • subYears() public

    从实例中移除年数。

  • subYearsWithOverflow() public

    从实例中移除年数,并允许溢出。

  • timestamp() public

    设置实例的时间戳。

  • toAtomString() public

    将实例格式化为 ATOM。

  • toCookieString() public

    将实例格式化为 COOKIE。

  • toDateString() public

    将实例格式化为日期。

  • toDateTimeString() public

    将实例格式化为日期和时间。

  • toDayDateTimeString() public

    将实例格式化为星期几、日期和时间。

  • toFormattedDateString() public

    将实例格式化为可读日期。

  • toIso8601String() public

    将实例格式化为 ISO8601。

  • toNative() public

    返回一个 DateTimeImmutable 实例。

  • toQuarter() public

    返回季度。

  • toRfc1036String() public

    将实例格式化为 RFC1036。

  • toRfc1123String() public

    将实例格式化为 RFC1123。

  • toRfc2822String() public

    将实例格式化为 RFC2822。

  • toRfc3339String() public

    将实例格式化为 RFC3339。

  • toRfc822String() public

    将实例格式化为 RFC822。

  • toRfc850String() public

    将实例格式化为 RFC850。

  • toRssString() public

    将实例格式化为 RSS。

  • toTimeString() public

    将实例格式化为时间。

  • toUnixString() public

    返回一个 UNIX 时间戳。

  • toW3cString() public

    将实例格式化为 W3C。

  • toWeek() public

    返回 ISO 8601 年的周数,周从星期一开始计算。

  • today() public static

    创建表示今天的实例。

  • tomorrow() public static

    创建表示明天的实例。

  • wasWithinLast() public

    如果该实例发生在指定的时间间隔内,则返回 true。

  • year() public

    设置实例的年份。

  • yesterday() public static

    创建表示昨天的实例。

方法详情

__construct() ¶ public

__construct(Cake\Chronos\ChronosDateCake\Chronos\ChronosTimeDateTimeInterface|string|int|null $time = 'now', DateTimeZone|string|null $timezone = null)

创建一个新的 Chronos 实例。

请参阅测试辅助部分(特别是 static::setTestNow())以了解有关此构造函数返回测试实例的可能性。

参数
Cake\Chronos\ChronosDateCake\Chronos\ChronosTimeDateTimeInterface|string|int|null $time optional

固定或相对时间。

DateTimeZone|string|null $timezone optional

实例的时区。

__debugInfo() ¶ public

__debugInfo(): array

返回用于调试的属性。

返回值
array

__get() ¶ public

__get(string $name): DateTimeZone|string|float|int|bool

获取对象的一部分

参数
string $name

要读取的属性名称。

返回值
DateTimeZone|string|float|int|bool
抛出
InvalidArgumentException

__isset() ¶ public

__isset(string $name): bool

检查对象上是否存在属性

参数
string $name

要检查的属性名称。

返回值
bool

__toString() ¶ public

__toString(): string

返回由 setToStringFormat() 指定的格式化字符串或默认的 DEFAULT_TO_STRING_FORMAT 格式。

返回值
string

addDays() ¶ public

addDays(int $value): static

在实例中添加天数。正数 $value 向前移动,负数 $value 向后移动。

参数
int $value

要添加的天数。

返回值
static

addHours() ¶ public

addHours(int $value): static

在实例中添加小时。正数 $value 向前移动,负数 $value 向后移动。

参数
int $value

要添加的小时数。

返回值
static

addMinutes() ¶ public

addMinutes(int $value): static

在实例中添加分钟。正数 $value 向前移动,负数 $value 向后移动。

参数
int $value

要添加的分钟数。

返回值
static

addMonths() ¶ public

addMonths(int $value): static

在实例中添加月份。正数 $value 向前移动,负数 $value 向后移动。

在添加或减去月份时,如果结果时间是日期不存在,则此操作的结果将始终是目标月份的最后一天。

示例

 (new Chronos('2015-01-03'))->addMonths(1); // Results in 2015-02-03

(new Chronos('2015-01-31'))->addMonths(1); // Results in 2015-02-28
参数
int $value

要添加的月份数。

返回值
static

addMonthsWithOverflow() ¶ public

addMonthsWithOverflow(int $value): static

在实例中添加带有溢出的月份。正数 $value 向前移动,负数 $value 向后移动。

如果新的 ChronosDate 不存在,则天数会溢出到下一个月。

示例

 (new Chronos('2012-01-30'))->addMonthsWithOverflow(1); // Results in 2013-03-01
参数
int $value

要添加的月份数。

返回值
static

addSeconds() ¶ public

addSeconds(int $value): static

在实例中添加秒数。正数 $value 向前移动,负数 $value 向后移动。

参数
int $value

要添加的秒数。

返回值
static

addWeekdays() ¶ public

addWeekdays(int $value): static

在实例中添加工作日。正数 $value 向前移动,负数 $value 向后移动。

参数
int $value

要添加的工作日数。

返回值
static

addWeeks() ¶ public

addWeeks(int $value): static

在实例中添加星期。正数 $value 向前移动,负数 $value 向后移动。

参数
int $value

要添加的周数。

返回值
static

addYears() ¶ public

addYears(int $value): static

在实例中添加年份。正数 $value 向前移动,负数 $value 向后移动。

如果新的 ChronosDate 不存在,则会使用该月的最后一天,而不是溢出到下一个月。

示例

 (new Chronos('2015-01-03'))->addYears(1); // Results in 2016-01-03

(new Chronos('2012-02-29'))->addYears(1); // Results in 2013-02-28
参数
int $value

要添加的年数。

返回值
static

addYearsWithOverflow() ¶ public

addYearsWithOverflow(int $value): static

在实例中添加带有溢出的年份。正数 $value 向前移动,负数 $value 向后移动。

如果新的 ChronosDate 不存在,则天数会溢出到下一个月。

示例

 (new Chronos('2012-02-29'))->addYearsWithOverflow(1); // Results in 2013-03-01
参数
int $value

要添加的年数。

返回值
static

average() ¶ public

average(DateTimeInterface|null $other = null): static

将当前实例修改为给定实例(默认情况下为当前实例)和当前实例的平均值。

参数
DateTimeInterface|null $other optional

要比较的实例。

返回值
static

between() ¶ public

between(DateTimeInterface $start, DateTimeInterface $end, bool $equals = true): bool

确定实例是否在另外两个实例之间

参数
DateTimeInterface $start

目标范围的开始。

DateTimeInterface $end

目标范围的结束。

bool $equals optional

是否包含范围的开始和结束。

返回值
bool

closest() ¶ public

closest(DateTimeInterface $first, DateTimeInterface $second, DateTimeInterface ...$others): static

从实例中获取最接近的日期。

参数
DateTimeInterface $first

要比较的实例。

DateTimeInterface $second

要比较的实例。

DateTimeInterface ...$others

要比较的其他实例。

返回值
static

create() ¶ public static

create(int|null $year = null, int|null $month = null, int|null $day = null, int|null $hour = null, int|null $minute = null, int|null $second = null, int|null $microsecond = null, DateTimeZone|string|null $timezone = null): static

从特定的日期和时间创建一个实例。

如果 $year、$month 或 $day 任何一个设置为 null,则使用其 now() 值。

如果 $hour 为 null,则将其设置为 now() 值,$minute、$second 和 $microsecond 的默认值将为其 now() 值。如果 $hour 不为 null,则 $minute、$second 和 $microsecond 的默认值为 0。

参数
int|null $year optional

要创建实例的年份。

int|null $month optional

要创建实例的月份。

int|null $day optional

要创建实例的日期。

int|null $hour optional

要创建实例的小时。

int|null $minute optional

要创建实例的分钟。

int|null $second optional

要创建实例的秒数。

int|null $microsecond optional

要创建实例的微秒数。

DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static

createFromArray() ¶ public static

createFromArray(array<int|string> $values): static

从日期和时间值的数组创建一个实例。

日期必须设置“年”、“月”和“日”值。时间值默认都为 0。

“时区”值可以是 \DateTimeZone 支持的任何格式。

允许的值

  • 年
  • 月
  • 日
  • 小时
  • 分钟
  • 秒
  • 微秒
  • 上午/下午 ("am" 或 "pm")
  • 时区
参数
array<int|string> $values

日期和时间值数组。

返回值
static

createFromDate() ¶ public static

createFromDate(int|null $year = null, int|null $month = null, int|null $day = null, DateTimeZone|string|null $timezone = null): static

仅从日期创建一个实例。时间部分设置为现在。

参数
int|null $year optional

要创建实例的年份。

int|null $month optional

要创建实例的月份。

int|null $day optional

要创建实例的日期。

DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static

createFromFormat() ¶ public static

createFromFormat(string $format, string $time, DateTimeZone|string|null $timezone = null): static

从特定格式创建一个实例

参数
string $format

与 date() 兼容的格式字符串。

string $time

要解释的格式化日期字符串。

DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static
抛出
InvalidArgumentException

createFromTime() ¶ public static

createFromTime(int|null $hour = null, int|null $minute = null, int|null $second = null, int|null $microsecond = null, DateTimeZone|string|null $timezone = null): static

仅从时间创建一个实例。日期部分设置为今天。

参数
int|null $hour optional

要创建实例的小时。

int|null $minute optional

要创建实例的分钟。

int|null $second optional

要创建实例的秒数。

int|null $microsecond optional

要创建实例的微秒数。

DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static

createFromTimestamp() ¶ public static

createFromTimestamp(float|int $timestamp, DateTimeZone|string|null $timezone = null): static

从时间戳创建一个实例

参数
float|int $timestamp

要从中创建实例的时间戳。

DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static

createInterval() ¶ public static

createInterval(int|null $years = null, int|null $months = null, int|null $weeks = null, int|null $days = null, int|null $hours = null, int|null $minutes = null, int|null $seconds = null, int|null $microseconds = null): DateInterval

从指定的值创建一个新的 DateInterval 实例。

参数
int|null $years optional

要使用的年份。

int|null $months optional

要使用的月份。

int|null $weeks optional

要使用的星期。

int|null $days optional

要使用的日期。

int|null $hours optional

要使用的小时。

int|null $minutes optional

要使用的分钟。

int|null $seconds optional

要使用的秒数。

int|null $microseconds optional

要使用的微秒。

返回值
DateInterval

day() ¶ public

day(int $value): static

设置实例的日期

参数
int $value

日期值。

返回值
static

diff() ¶ public

diff(DateTimeInterface $target, bool $absolute = false): DateInterval

返回此实例与目标实例之间的差异。

参数
DateTimeInterface $target

目标实例

bool $absolute optional

间隔是否强制为正

返回值
DateInterval

diffFiltered() ¶ public

diffFiltered(DateInterval $interval, callable $callback, DateTimeInterface|null $other = null, bool $absolute = true, int $options = 0): int

使用过滤器可调用函数获取给定间隔的差异

参数
DateInterval $interval

要遍历的间隔

callable $callback

用于过滤的回调函数。

DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

int $options optional

DatePeriod 选项,{@see https://php.ac.cn/manual/en/class.dateperiod.php}

返回值
int

diffForHumans() ¶ public

diffForHumans(DateTimeInterface|null $other = null, bool $absolute = false): string

获取人类可读格式的差异。

将过去的值与默认的现在进行比较时:1 小时前 5 个月前

将未来的值与默认的现在进行比较时:1 小时后 5 个月后

将过去的值与另一个值进行比较时:1 小时前 5 个月前

将未来的值与另一个值进行比较时:1 小时后 5 个月后

参数
DateTimeInterface|null $other optional

要比较的日期时间。

bool $absolute optional

删除时间差异修饰符,如 ago、after 等

返回值
string

diffFormatter() ¶ public static

diffFormatter(Cake\Chronos\DifferenceFormatterInterface|null $formatter = null): Cake\Chronos\DifferenceFormatterInterface

获取差异格式化程序实例或覆盖当前实例。

参数
Cake\Chronos\DifferenceFormatterInterface|null $formatter optional

设置时的格式化程序实例。

返回值
Cake\Chronos\DifferenceFormatterInterface

diffInDays() ¶ public

diffInDays(DateTimeInterface|null $other = null, bool $absolute = true): int

获取天数差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInDaysFiltered() ¶ public

diffInDaysFiltered(callable $callback, DateTimeInterface|null $other = null, bool $absolute = true, int $options = 0): int

使用过滤器可调用函数获取天数差异

参数
callable $callback

用于过滤的回调函数。

DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

int $options optional

DatePeriod 选项,{@see https://php.ac.cn/manual/en/class.dateperiod.php}

返回值
int

diffInHours() ¶ public

diffInHours(DateTimeInterface|null $other = null, bool $absolute = true): int

获取小时差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInHoursFiltered() ¶ public

diffInHoursFiltered(callable $callback, DateTimeInterface|null $other = null, bool $absolute = true, int $options = 0): int

使用过滤器可调用函数获取小时差异

参数
callable $callback

用于过滤的回调函数。

DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

int $options optional

DatePeriod 选项,{@see https://php.ac.cn/manual/en/class.dateperiod.php}

返回值
int

diffInMinutes() ¶ public

diffInMinutes(DateTimeInterface|null $other = null, bool $absolute = true): int

获取分钟差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInMonths() ¶ public

diffInMonths(DateTimeInterface|null $other = null, bool $absolute = true): int

获取月份差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInMonthsIgnoreTimezone() ¶ public

diffInMonthsIgnoreTimezone(DateTimeInterface|null $other = null, bool $absolute = true): int

获取忽略时区的月份差异。这意味着月份是在指定的时区中计算的,没有先转换为 UTC。这可以防止日期更改,因为这可能会更改月份。

例如,如果比较 2019-06-01 Asia/Tokyo 和 2019-10-01 Asia/Tokyo,则结果将是 4 个月,而不是使用普通 DateTime::diff() 时的 3 个月。

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInSeconds() ¶ public

diffInSeconds(DateTimeInterface|null $other = null, bool $absolute = true): int

获取秒数差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInWeekdays() ¶ public

diffInWeekdays(DateTimeInterface|null $other = null, bool $absolute = true, int $options = 0): int

获取工作日差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

int $options optional

DatePeriod 选项,{@see https://php.ac.cn/manual/en/class.dateperiod.php}

返回值
int

diffInWeekendDays() ¶ public

diffInWeekendDays(DateTimeInterface|null $other = null, bool $absolute = true, int $options = 0): int

使用过滤器获取周末日期差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

int $options optional

DatePeriod 选项,{@see https://php.ac.cn/manual/en/class.dateperiod.php}

返回值
int

diffInWeeks() ¶ public

diffInWeeks(DateTimeInterface|null $other = null, bool $absolute = true): int

获取星期差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

diffInYears() ¶ public

diffInYears(DateTimeInterface|null $other = null, bool $absolute = true): int

获取年份差异

参数
DateTimeInterface|null $other optional

要从中进行差值的实例。

bool $absolute optional

获取差值的绝对值

返回值
int

endOfCentury() ¶ public

endOfCentury(): static

将日期设置为世纪末,时间设置为 23:59:59

返回值
static

endOfDay() ¶ public

endOfDay(bool $microseconds = false): static

将时间设置为 23:59:59 或 23:59:59.999999(如果 $microseconds 为真)。

参数
bool $microseconds optional

是否设置微秒

返回值
static

endOfDecade() ¶ public

endOfDecade(): static

将日期设置为十年末,时间设置为 23:59:59

返回值
static

endOfMonth() ¶ public

endOfMonth(): static

将日期设置为月底,时间设置为 23:59:59

返回值
static

endOfWeek() ¶ public

endOfWeek(): static

将日期设置为周末(在 $weekEndsAt 中定义),时间设置为 23:59:59

返回值
static

endOfYear() ¶ public

endOfYear(): static

将日期设置为年底,时间设置为 23:59:59

返回值
static

equals() ¶ public

equals(DateTimeInterface $other): bool

确定实例是否等于另一个实例

参数
DateTimeInterface $other

要比较的实例。

返回值
bool

farthest() ¶ public

farthest(DateTimeInterface $first, DateTimeInterface $second, DateTimeInterface ...$others): static

从实例中获取最远的日期。

参数
DateTimeInterface $first

要比较的实例。

DateTimeInterface $second

要比较的实例。

DateTimeInterface ...$others

要比较的其他实例。

返回值
static

firstOfMonth() ¶ public

firstOfMonth(int|null $dayOfWeek = null): static

修改为当前月中的给定一周的第一个日期。如果未提供 dayOfWeek,则修改为当前月的第一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

firstOfQuarter() ¶ public

firstOfQuarter(int|null $dayOfWeek = null): static

修改为当前季度中的给定一周的第一个日期。如果未提供 dayOfWeek,则修改为当前季度的第一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

firstOfYear() ¶ public

firstOfYear(int|null $dayOfWeek = null): static

修改为当前年份中的给定一周的第一个日期。如果未提供 dayOfWeek,则修改为当前年份的第一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

format() ¶ public

format(string $format): string

根据 DateTimeImmutable::format() 返回格式化的日期字符串。

参数
string $format

字符串格式

返回值
string

fromNow() ¶ public static

fromNow(DateTimeInterface $other): DateInterval|bool

用于获取给定时间剩余时间的便捷方法。

参数
DateTimeInterface $other

要获取剩余时间的日期。

返回值
DateInterval|bool

getLastErrors() ¶ public static

getLastErrors(): array|false

返回上次 createFromFormat() 调用时的解析警告和错误。

返回与 DateTimeImmutable::getLastErrors() 相同的数据。

返回值
array|false

getOffset() ¶ public

getOffset(): int

返回时区偏移量。

返回值
int

getTestNow() ¶ public static

getTestNow(): Cake\Chronos\Chronos|null

获取在创建“现在”实例时要返回的 Chronos 实例(真实或模拟)。

返回值
Cake\Chronos\Chronos|null

getTimestamp() ¶ public

getTimestamp(): int

获取此实例的 Unix 时间戳。

返回值
int

getTimezone() ¶ public

getTimezone(): DateTimeZone

返回为此实例设置的时区。

返回值
DateTimeZone

getWeekEndsAt() ¶ public static

getWeekEndsAt(): int

获取一周的最后一天

返回值
int

getWeekStartsAt() ¶ public static

getWeekStartsAt(): int

获取一周的第一天

返回值
int

getWeekendDays() ¶ public static

getWeekendDays(): array

获取周末日期

返回值
array

greaterThan() ¶ public

greaterThan(DateTimeInterface $other): bool

确定实例是否大于(晚于)另一个实例

参数
DateTimeInterface $other

要比较的实例。

返回值
bool

greaterThanOrEquals() ¶ public

greaterThanOrEquals(DateTimeInterface $other): bool

确定实例是否大于(晚于)或等于另一个实例

参数
DateTimeInterface $other

要比较的实例。

返回值
bool

hasRelativeKeywords() ¶ public static

hasRelativeKeywords(string|null $time): bool

确定时间字符串中是否存在相对关键字,这用于为测试实例创建相对于现在的日期。例如:下周二

参数
string|null $time

要检查的时间字符串。

返回值
bool

hasTestNow() ¶ public static

hasTestNow(): bool

确定是否设置了有效的测试实例。有效的测试实例是任何不为空的值。

返回值
bool

hour() ¶ public

hour(int $value): static

设置实例的小时

参数
int $value

小时值。

返回值
static

instance() ¶ public static

instance(DateTimeInterface $other): static

从 DateTimeInterface 创建一个实例

参数
DateTimeInterface $other

要转换的日期时间实例。

返回值
static

isBirthday() ¶ public

isBirthday(DateTimeInterface|null $other = null): bool

检查是否为生日。比较两个日期的日期/月份值。

参数
DateTimeInterface|null $other optional

要比较的实例或 null(使用当前日期)。

返回值
bool

isFirstHalf() ¶ public

isFirstHalf(): bool

确定实例是否在今年的前半年

返回值
bool

isFriday() ¶ public

isFriday(): bool

检查这一天是否为星期五。

返回值
bool

isFuture() ¶ public

isFuture(): bool

确定实例是否在将来,即大于(晚于)现在

返回值
bool

isLastMonth() ¶ public

isLastMonth(): bool

确定实例是否在上个月内

返回值
bool

isLastWeek() ¶ public

isLastWeek(): bool

确定实例是否在上周内

返回值
bool

isLastYear() ¶ public

isLastYear(): bool

确定实例是否在去年内

返回值
bool

isLeapYear() ¶ public

isLeapYear(): bool

确定实例是否为闰年

返回值
bool

isMonday() ¶ public

isMonday(): bool

检查这一天是否为星期一。

返回值
bool

isNextMonth() ¶ public

isNextMonth(): bool

确定实例是否在下个月内

返回值
bool

isNextWeek() ¶ public

isNextWeek(): bool

确定实例是否在下周内

返回值
bool

isNextYear() ¶ public

isNextYear(): bool

确定实例是否在明年内

返回值
bool

isPast() ¶ public

isPast(): bool

确定实例是否在过去,即小于(早于)现在

返回值
bool

isSameDay() ¶ public

isSameDay(DateTimeInterface $other): bool

检查传入的日期是否与实例的当前日期相同。

参数
DateTimeInterface $other

要检查的实例。

返回值
bool

isSameMonth() ¶ public

isSameMonth(DateTimeInterface $other): bool

返回传入的日期是否与当前月份和年份相同。

参数
DateTimeInterface $other

要检查的实例。

返回值
bool

isSameYear() ¶ public

isSameYear(DateTimeInterface $other): bool

返回传入的日期是否与当前年份相同。

参数
DateTimeInterface $other

要检查的实例。

返回值
bool

isSaturday() ¶ public

isSaturday(): bool

检查这天是否为星期六。

返回值
bool

isSecondHalf() ¶ public

isSecondHalf(): bool

判断实例是否在今年的后半年。

返回值
bool

isSunday() ¶ public

isSunday(): bool

检查这天是否为星期日。

返回值
bool

isThisMonth() ¶ public

isThisMonth(): bool

如果此对象表示当前月份内的日期,则返回 true。

返回值
bool

isThisWeek() ¶ public

isThisWeek(): bool

如果此对象表示当前周内的日期,则返回 true。

返回值
bool

isThisYear() ¶ public

isThisYear(): bool

如果此对象表示当前年份内的日期,则返回 true。

返回值
bool

isThursday() ¶ public

isThursday(): bool

检查这天是否为星期四。

返回值
bool

isToday() ¶ public

isToday(): bool

判断实例是否为今天。

返回值
bool

isTomorrow() ¶ public

isTomorrow(): bool

判断实例是否为明天。

返回值
bool

isTuesday() ¶ public

isTuesday(): bool

检查这天是否为星期二。

返回值
bool

isWednesday() ¶ public

isWednesday(): bool

检查这天是否为星期三。

返回值
bool

isWeekday() ¶ public

isWeekday(): bool

判断实例是否为工作日。

返回值
bool

isWeekend() ¶ public

isWeekend(): bool

判断实例是否为周末。

返回值
bool

isWithinNext() ¶ public

isWithinNext(string|int $timeInterval): bool

如果此实例将在指定的间隔内发生,则返回 true。

参数
string|int $timeInterval

带空格的时间类型数字值。有效类型示例:6 hours, 2 days, 1 minute。

返回值
bool

isYesterday() ¶ public

isYesterday(): bool

判断实例是否为昨天。

返回值
bool

lastOfMonth() ¶ public

lastOfMonth(int|null $dayOfWeek = null): static

修改为当前月份中给定一周的最后一天。如果未提供 dayOfWeek,则修改为当前月份的最后一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

lastOfQuarter() ¶ public

lastOfQuarter(int|null $dayOfWeek = null): static

修改为当前季度中给定一周的最后一天。如果未提供 dayOfWeek,则修改为当前季度的最后一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

lastOfYear() ¶ public

lastOfYear(int|null $dayOfWeek = null): static

修改为当前年份中给定一周的最后一天。如果未提供 dayOfWeek,则修改为当前年份的最后一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

lessThan() ¶ public

lessThan(DateTimeInterface $other): bool

判断实例是否小于(早于)另一个实例。

参数
DateTimeInterface $other

要比较的实例。

返回值
bool

lessThanOrEquals() ¶ public

lessThanOrEquals(DateTimeInterface $other): bool

判断实例是否小于(早于)或等于另一个实例。

参数
DateTimeInterface $other

要比较的实例。

返回值
bool

max() ¶ public

max(DateTimeInterface|null $other = null): static

获取给定实例(默认现在)和当前实例之间的最大实例。

参数
DateTimeInterface|null $other optional

要比较的实例。

返回值
static

maxValue() ¶ public static

maxValue(): static

为支持的最大日期创建实例。

返回值
static

microsecond() ¶ public

microsecond(int $value): static

设置实例的微秒。

参数
int $value

微秒值。

返回值
static

min() ¶ public

min(DateTimeInterface|null $other = null): static

获取给定实例(默认现在)和当前实例之间的最小实例。

参数
DateTimeInterface|null $other optional

要比较的实例。

返回值
static

minValue() ¶ public static

minValue(): static

为支持的最小日期创建实例。

返回值
static

minute() ¶ public

minute(int $value): static

设置实例的分钟。

参数
int $value

分钟值。

返回值
static

modify() ¶ public

modify(string $modifier): static

根据 DateTimeImmutable::modifier() 创建一个新的修改日期的实例。

参数
string $modifier

日期修改器

返回值
static
抛出
InvalidArgumentException
另请参阅
https://php.ac.cn/manual/en/datetimeimmutable.modify.php

month() ¶ public

month(int $value): static

设置实例的月份。

参数
int $value

月份值。

返回值
static

next() ¶ public

next(int|null $dayOfWeek = null): static

修改为给定一周的下一天。如果未提供 dayOfWeek,则修改为当前一周的下一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

notEquals() ¶ public

notEquals(DateTimeInterface $other): bool

判断实例是否不等于另一个实例。

参数
DateTimeInterface $other

要比较的实例。

返回值
bool

now() ¶ public static

now(DateTimeZone|string|null $timezone = null): static

获取当前日期和时间的实例。

参数
DateTimeZone|string|null $timezone optional

DateTimeZone 对象或时区名称。

返回值
static

nthOfMonth() ¶ public

nthOfMonth(int $nth, int $dayOfWeek): static|false

修改为当前月份中给定一周的给定天。如果计算出的天数超出当前月份的范围,则返回 false 且不进行任何修改。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int $nth

要使用的偏移量。

int $dayOfWeek

要移动到的星期几。

返回值
static|false

nthOfQuarter() ¶ public

nthOfQuarter(int $nth, int $dayOfWeek): static|false

修改为当前季度中给定一周的给定天。如果计算出的天数超出当前季度的范围,则返回 false 且不进行任何修改。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int $nth

要使用的偏移量。

int $dayOfWeek

要移动到的星期几。

返回值
static|false

nthOfYear() ¶ public

nthOfYear(int $nth, int $dayOfWeek): static|false

修改为当前年份中给定一周的给定天。如果计算出的天数超出当前年份的范围,则返回 false 且不进行任何修改。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int $nth

要使用的偏移量。

int $dayOfWeek

要移动到的星期几。

返回值
static|false

parse() ¶ public static

parse(Cake\Chronos\ChronosDateCake\Chronos\ChronosTimeDateTimeInterface|string|int|null $time = 'now', DateTimeZone|string|null $timezone = null): static

从字符串创建实例。这与构造函数的别名相同,它允许更好的流畅语法,因为它允许你执行 Chronos::parse('Monday next week')->fn() 而不是 (new Chronos('Monday next week'))->fn()

参数
Cake\Chronos\ChronosDateCake\Chronos\ChronosTimeDateTimeInterface|string|int|null $time optional

要解析的与 strtotime 兼容的字符串

DateTimeZone|string|null $timezone optional

DateTimeZone 对象或时区名称。

返回值
static

previous() ¶ public

previous(int|null $dayOfWeek = null): static

修改为给定一周的先前一天。如果未提供 dayOfWeek,则修改为当前一周的先前一天。使用提供的常量来指示所需的 dayOfWeek,例如 Chronos::MONDAY。

参数
int|null $dayOfWeek optional

要移动到的星期几。

返回值
static

resetToStringFormat() ¶ public static

resetToStringFormat(): void

将 __toString() 格式重置为 DEFAULT_TO_STRING_FORMAT。

返回值
void

rolloverTime() ¶ protected static

rolloverTime(int|null $value, int $max): int|null

更新值以保留剩余值并返回时间单位的回滚值,如果无回滚则返回 null。

参数
int|null $value

时间单位值

int $max

时间单位最大值

返回值
int|null

safeCreateDateTimeZone() ¶ protected static

safeCreateDateTimeZone(DateTimeZone|string|null $object): DateTimeZone

从字符串或 DateTimeZone 创建 DateTimeZone。

参数
DateTimeZone|string|null $object

要转换的值。

返回值
DateTimeZone
抛出
InvalidArgumentException

second() ¶ public

second(int $value): static

设置实例的秒。

参数
int $value

秒值。

返回值
static

secondsSinceMidnight() ¶ public

secondsSinceMidnight(): int

从午夜开始的秒数。

返回值
int

secondsUntilEndOfDay() ¶ public

secondsUntilEndOfDay(): int

到 23:59:59 的秒数。

返回值
int

setDate() ¶ public

setDate(int $year, int $month, int $day): static

设置日期。

参数
int $year

要设置的年份。

int $month

要设置的月份。

int $day

要设置的日期。

返回值
static

setDateTime() ¶ public

setDateTime(int $year, int $month, int $day, int $hour, int $minute, int $second = 0): static

设置日期和时间。

参数
int $year

要设置的年份。

int $month

要设置的月份。

int $day

要设置的日期。

int $hour

要设置的小时。

int $minute

要设置的分钟。

int $second optional

要设置的秒数。

返回值
static

setISODate() ¶ public

setISODate(int $year, int $week, int $dayOfWeek = 1): static

根据 ISO 8601 标准设置日期。

参数
int $year

日期的年份。

int $week

日期的星期。

int $dayOfWeek optional

从一周的第一天起的偏移量。

返回值
static

setTestNow() ¶ public static

setTestNow(Cake\Chronos\Chronos|string|null $testNow = null): void

设置一个 Chronos 实例(真实或模拟),以便在创建“现在”实例时返回。在以下情况下,将返回提供的实例。

  • 调用静态 now() 方法,例如 Chronos::now()。
  • 当向构造函数或 parse() 传递 null(或空字符串)时,例如 new Chronos(null)。
  • 当向构造函数或 parse() 传递字符串“now”时,例如 new Chronos('now')。
  • 当向 Chronos::parse() 传递包含所需时间的字符串时。

请注意,上面的示例中省略了时区参数,并且没有影响,因为无论其值如何,都将返回模拟值。

要清除测试实例,请使用默认参数 null 调用此方法。

参数
Cake\Chronos\Chronos|string|null $testNow optional

所有未来实例要使用的实例。

返回值
void

setTime() ¶ public

setTime(int $hours, int $minutes, int $seconds = 0, int $microseconds = 0): static

设置时间。

参数
int $hours

时间的小时数

int $minutes

时间的分钟数

int $seconds optional

时间的秒数

int $microseconds optional

时间的微秒数

返回值
static

setTimeFromTimeString() ¶ public

setTimeFromTimeString(string $time): static

通过时间字符串设置时间。

参数
string $time

时间字符串。

返回值
static

setTimestamp() ¶ public

setTimestamp(int $timestamp): static

根据 Unix 时间戳设置日期和时间。

参数
int $timestamp

表示日期的 Unix 时间戳

返回值
static

setTimezone() ¶ public

setTimezone(DateTimeZone|string $value): static

从字符串或对象设置实例的时区。

参数
DateTimeZone|string $value

要使用的 DateTimeZone 对象或时区名称。

返回值
static

setToStringFormat() ¶ public static

setToStringFormat(string $format): void

设置 __toString() 格式。

参数
string $format

请参阅 format() 以了解可接受的说明符。

返回值
void

setWeekEndsAt() ¶ public static

setWeekEndsAt(int $day): void

设置一周的最后一天。

参数
int $day

一周结束的那一天。

返回值
void

setWeekStartsAt() ¶ public static

setWeekStartsAt(int $day): void

设置一周的第一天。

参数
int $day

一周开始的那一天。

返回值
void

setWeekendDays() ¶ public static

setWeekendDays(array $days): void

设置周末。

参数
array $days

哪些天是“周末”。

返回值
void

startOfCentury() ¶ public

startOfCentury(): static

将日期设置为世纪的第一天,并将时间设置为 00:00:00。

返回值
static

startOfDay() ¶ public

startOfDay(): static

将时间设置为 00:00:00。

返回值
static

startOfDecade() ¶ public

startOfDecade(): static

将日期设置为十年的第一天,并将时间设置为 00:00:00。

返回值
static

startOfMonth() ¶ public

startOfMonth(): static

将日期设置为月份的第一天,并将时间设置为 00:00:00。

返回值
static

startOfWeek() ¶ public

startOfWeek(): static

将日期设置为一周的第一天(在 $weekStartsAt 中定义)并将时间设置为 00:00:00。

返回值
static

startOfYear() ¶ public

startOfYear(): static

将日期设置为年份的第一天,并将时间设置为 00:00:00。

返回值
static

subDays() ¶ public

subDays(int $value): static

从实例中删除天数。

参数
int $value

要移除的天数。

返回值
static

subHours() ¶ public

subHours(int $value): static

从实例中删除小时数。

参数
int $value

要移除的小时数。

返回值
static

subMinutes() ¶ public

subMinutes(int $value): static

从实例中删除分钟数。

参数
int $value

要移除的分钟数。

返回值
static

subMonths() ¶ public

subMonths(int $value): static

从实例中删除月份数。

与 addMonths() 具有相同的行为。

参数
int $value

要移除的月数。

返回值
static

subMonthsWithOverflow() ¶ public

subMonthsWithOverflow(int $value): static

在实例中添加带有溢出的月份。正数 $value 向前移动,负数 $value 向后移动。

如果新的 ChronosDate 不存在,则天数会溢出到下一个月。

示例

 (new Chronos('2012-01-30'))->addMonthsWithOverflow(1); // Results in 2013-03-01
参数
int $value

要移除的月数。

返回值
static

subSeconds() ¶ public

subSeconds(int $value): static

从实例中移除秒数。

参数
int $value

要移除的秒数。

返回值
static

subWeekdays() ¶ public

subWeekdays(int $value): static

从实例中移除工作日。

参数
int $value

要移除的工作日数。

返回值
static

subWeeks() ¶ public

subWeeks(int $value): static

从实例中移除周数。

参数
int $value

要移除的周数。

返回值
static

subYears() ¶ public

subYears(int $value): static

从实例中移除年数。

与addYears()的行为相同。

参数
int $value

要移除的年份数。

返回值
static

subYearsWithOverflow() ¶ public

subYearsWithOverflow(int $value): static

从实例中移除年数,并允许溢出。

与addYeasrWithOverflow()的行为相同。

参数
int $value

要移除的年份数。

返回值
static

timestamp() ¶ public

timestamp(int $value): static

设置实例的时间戳。

参数
int $value

要设置的时间戳值。

返回值
static

toAtomString() ¶ public

toAtomString(): string

将实例格式化为 ATOM。

返回值
string

toCookieString() ¶ public

toCookieString(): string

将实例格式化为 COOKIE。

返回值
string

toDateString() ¶ public

toDateString(): string

将实例格式化为日期。

返回值
string

toDateTimeString() ¶ public

toDateTimeString(): string

将实例格式化为日期和时间。

返回值
string

toDayDateTimeString() ¶ public

toDayDateTimeString(): string

将实例格式化为星期几、日期和时间。

返回值
string

toFormattedDateString() ¶ public

toFormattedDateString(): string

将实例格式化为可读日期。

返回值
string

toIso8601String() ¶ public

toIso8601String(): string

将实例格式化为 ISO8601。

返回值
string

toNative() ¶ public

toNative(): DateTimeImmutable

返回一个 DateTimeImmutable 实例。

此方法返回一个没有 Chronos 扩展的 PHP DateTimeImmutable。

返回值
DateTimeImmutable

toQuarter() ¶ public

toQuarter(bool $range = false): array|int

返回季度。

参数
bool $range 可选

范围。

返回值
array|int

toRfc1036String() ¶ public

toRfc1036String(): string

将实例格式化为 RFC1036。

返回值
string
链接
https://tools.ietf.org/html/rfc1036

toRfc1123String() ¶ public

toRfc1123String(): string

将实例格式化为 RFC1123。

返回值
string
链接
https://tools.ietf.org/html/rfc1123

toRfc2822String() ¶ public

toRfc2822String(): string

将实例格式化为 RFC2822。

返回值
string
链接
https://tools.ietf.org/html/rfc2822

toRfc3339String() ¶ public

toRfc3339String(): string

将实例格式化为 RFC3339。

返回值
string
链接
https://tools.ietf.org/html/rfc3339

toRfc822String() ¶ public

toRfc822String(): string

将实例格式化为 RFC822。

返回值
string
链接
https://tools.ietf.org/html/rfc822

toRfc850String() ¶ public

toRfc850String(): string

将实例格式化为 RFC850。

返回值
string
链接
https://tools.ietf.org/html/rfc850

toRssString() ¶ public

toRssString(): string

将实例格式化为 RSS。

返回值
string

toTimeString() ¶ public

toTimeString(): string

将实例格式化为时间。

返回值
string

toUnixString() ¶ public

toUnixString(): string

返回一个 UNIX 时间戳。

返回值
string

toW3cString() ¶ public

toW3cString(): string

将实例格式化为 W3C。

返回值
string

toWeek() ¶ public

toWeek(): int

返回 ISO 8601 年的周数,周从星期一开始计算。

返回值
int

today() ¶ public static

today(DateTimeZone|string|null $timezone = null): static

创建表示今天的实例。

参数
DateTimeZone|string|null $timezone optional

要使用的时区。

返回值
static

tomorrow() ¶ public static

tomorrow(DateTimeZone|string|null $timezone = null): static

创建表示明天的实例。

参数
DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static

wasWithinLast() ¶ public

wasWithinLast(string|int $timeInterval): bool

如果该实例发生在指定的时间间隔内,则返回 true。

参数
string|int $timeInterval

带空格的时间类型数字值。有效类型示例:6 hours, 2 days, 1 minute。

返回值
bool

year() ¶ public

year(int $value): static

设置实例的年份。

参数
int $value

年份值。

返回值
static

yesterday() ¶ public static

yesterday(DateTimeZone|string|null $timezone = null): static

创建表示昨天的实例。

参数
DateTimeZone|string|null $timezone optional

新实例应使用的 DateTimeZone 对象或时区名称。

返回值
static

属性详情

$age ¶ public @property-read

使用默认参数执行 diffInYears()

类型
int

$day ¶ public @property-read

类型
int<1, 31>

$dayOfWeek ¶ public @property-read

1(星期一)到 7(星期日)

类型
int<1, 7>

$dayOfYear ¶ public @property-read

0 到 365

类型
int<0, 365>

$days ¶ protected static

一周中各天的名称。

类型
array

$daysInMonth ¶ public @property-read

给定月份的天数

类型
int<1, 31>

$diffFormatter ¶ protected static

差异格式化对象的实例。

类型
Cake\Chronos\DifferenceFormatterInterface|null

$dst ¶ public @property-read

夏令时指示器,如果为夏令时,则为 true,否则为 false

类型
bool

$half ¶ public @property-read

一年中的半部分,1 代表 1 月到 6 月,2 代表 7 月到 12 月。

类型
int<1, 2>

$hour ¶ public @property-read

类型
int<0, 23>

$lastErrors ¶ protected static

上次调用 createFromFormat() 时的错误。

类型
array|false

$local ¶ public @property-read

检查时区是否为本地时区,如果为本地时区,则为 true,否则为 false

类型
bool

$micro ¶ public @property-read

类型
int<0, 999999>

$microsecond ¶ public @property-read

类型
int<0, 999999>

$minute ¶ public @property-read

类型
int<0, 59>

$month ¶ public @property-read

类型
int<1, 12>

$offset ¶ public @property-read

相对于 UTC 的时区偏移量(以秒为单位)

类型
int

$offsetHours ¶ public @property-read

相对于 UTC 的时区偏移量(以小时为单位)

类型
int

$quarter ¶ public @property-read

此实例的季度,1 - 4

类型
int<1, 4>

$relativePattern ¶ protected static

相对时期的正则表达式。

类型
string

$second ¶ public @property-read

类型
int<0, 59>

$testNow ¶ protected static

在创建 now 实例时返回的测试 Chronos 实例

Chronos 提供的所有日期/时间类只有一个测试用例。 它的目的是模拟对“现在”的模拟,而“现在”是一个单一的全局事实。

类型
Cake\Chronos\Chronos|null

$timestamp ¶ public @property-read

自 Unix 纪元以来的秒数

类型
int

$timezone ¶ public @property-read

当前时区

类型
DateTimeZone

$timezoneName ¶ public @property-read

类型
string

$toStringFormat ¶ protected static

当类型转换发生时,用于 __toString 方法的格式。

类型
string

$tz ¶ public @property-read

时区的别名

类型
DateTimeZone

$tzName ¶ public @property-read

类型
string

$utc ¶ public @property-read

检查时区是否为 UTC,如果为 UTC,则为 true,否则为 false

类型
bool

$weekEndsAt ¶ protected static

一周的最后一天

类型
int

$weekOfMonth ¶ public @property-read

1 到 5

类型
int<1, 5>

$weekOfYear ¶ public @property-read

ISO-8601 年份中的周数,周从星期一开始

类型
int<1, 53>

$weekStartsAt ¶ protected static

一周的第一天

类型
int

$weekendDays ¶ protected static

周末日期

类型
array

$year ¶ public @property-read

类型
int

$yearIso ¶ public @property-read

类型
int
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与其中
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 新闻通讯
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成