资讯专栏INFORMATION COLUMN

刨刨 Carbon API

Yuqi / 1296人阅读

摘要:介绍是对模块的二次扩展提供时间格式化,时间计算的功能官方主页为地址为文件结构目录描述源文件源文件类的二次扩展类主要用于时差计算类的二次扩展类提供时间计算,格式化输出的功能自定义异常文件夹语言本地化文件夹类的方法会用到

介绍

Carbon是对PHP DateTime模块的二次扩展;提供时间格式化,时间计算的功能;

官方主页为 http://carbon.nesbot.com/;

Github地址为 https://github.com/briannesbitt/Carbon;

文件结构
目录 描述
-- src Carbon源文件
-- srcCarbon Carbon源文件
-- srcCarbonCarbonInterval.php DateInterval类的二次扩展类CarbonInterval;主要用于时差计算;
-- srcCarbonCarbon.php DateTime类的二次扩展类Carbon;提供时间计算,格式化输出的功能;
-- srcCarbonExceptions 自定义异常文件夹
-- srcCarbonLang 语言本地化文件夹;Carbon类的diffForHumans方法会用到;
-- tests Carbon测试用例文件
-- testsAbstractTestCase.php 所有测试文件的父类;提供了执行前初始化执行后清理的功能, 及其它公共的API;
-- testsCarbon 针对srcCarbonCarbon.php的测试用例组
-- testsCarbonInterval 针对srcCarbonCarbonInterval.php的测试用例组
-- testsLocalization 针对srcCarbonLang的测试用例组
API 细则

本篇涉及 APICarbon 1.22.1 版本;

Carbon 用途:生成Carbon实例
方法名 参数 描述
__construct $time(null), $tz(null) 根据格式化时间字符串和指定时区, 创建Carbon实例
instance(static) DateTime $dt 根据 DateTime实例创建Carbon实例
parse(static) $time(null), $tz(null) 根据格式化时间字符串和指定时区, 创建Carbon实例
create(static) $year(null), $month(null), $day(null), $hour(null), $minute(null), $second(null), $tz(null) 根据日期和时间创建Carbon实例 如果指定参数为null,会默认使用当前时间的对应值
createSafe(static) $year(null), $month(null), $day(null), $hour(null), $minute(null), $second(null), $tz(null) 根据日期和时间创建Carbon实例 如果指定参数为null,会默认使用当前时间的对应值; 指定参数不符合规范,会返回异常;
createFromDate(static) $year(null), $month(null), $day(null), $tz(null) 根据日期创建Carbon实例如果指定参数为null,会默认使用当前时间的对应值
createFromTime(static) $hour(null), $minute(null), $minute(null), $tz(null) 根据时间创建Carbon实例如果指定参数为null,会默认使用当前时间的对应值
createFromFormat(static) $format, $time, $tz(null) 根据时间字符串及其对应的format字符串创建Carbon实例
createFromTimestamp(static) $timestamp, $tz(null) 根据时间戳和指定时区, 创建Carbon实例
createFromTimestampUTC(static) $timestamp 根据时间戳和utc时区, 创建Carbon实例
now(static) $tx(null) 根据当前时间创建Carbon实例
today(static) $tx(null) 根据当前时间创建Carbon实例,时间重置为 0时0分0秒
tomorrow(static) $tx(null) 根据当前时间,加一天,创建Carbon实例
yesterday(static) $tx(null) 根据当前时间, 减一天, 创建Carbon实例
minValue(static) "" 创建系统支持的最小时间,并返回Carbon实例
maxValue(static) "" 创建系统支持的最大时间,并返回Carbon实例
copy "" 复制当前Carbon实例
fromSerialized(static) $value 解析序列化字符串,创建Carbon实例
用途:修改Carbon实例
方法名 参数 描述
setDate $year, $month, $day 设置当前实例的年,月,日
setDateTime $year, $month, $day, $hour, $minute, $second(0) 设置当前实例的年,月,日,时,分,秒
setTimeFromTimeString $time 根据 H:i:s 字符串设置当前实例时间
timestamp $value 根据时间戳设置当前实例时间
second $value 设置当前实例时间指定秒
minute $value 设置当前实例时间指定分钟
hour $value 设置当前实例时间指定小时
day $value 设置当前实例时间指定天
month $value 设置当前实例时间指月份
year $value 设置当前实例时间指定年份
startOfDay "" 重置当前实例时间为 0时0分0秒
endOfDay "" 重置当前实例时间为 23时59分59秒
startOfWeek "" 重置当前实例时间为 本周的第一天,同时设置 0时0分0秒
endOfWeek "" 重置当前实例时间为 本周的最后一天,同时设置 23时59分59秒
startOfMonth "" 重置当前实例时间为 本月第一天,同时设置 0时0分0秒
endOfMonth "" 重置当前实例时间为 本月最后一天,同时设置 23时59分59秒
startOfQuarter "" 重置当前实例时间为 本季度第一天,同时设置 0时0分0秒
endOfQuarter "" 重置当前实例时间为 本季度最后一天,同时设置 23时59分59秒
startOfYear "" 重置当前实例时间为 本年第一天,同时设置 0时0分0秒
endOfYear "" 重置当前实例时间为 本年最后一天,同时设置 23时59分59秒
startOfDecade "" 重置当前实例时间为 所在十年的第一天,同时设置 0时0分0秒
endOfDecade "" 重置当前实例时间为 所在十年的最后一天,同时设置 23时59分59秒
startOfCentury "" 重置当前实例时间为 本世纪的第一天,同时设置 0时0分0秒
endOfCentury "" 重置当前实例时间为 本世纪的最后一天,同时设置 23时59分59秒
next $dayOfWeek(null) 重置当前实例时间为 下一个指定dayOfWeek,同时设置 0时0分0秒
previous $dayOfWeek(null) 重置当前实例时间为 上一个指定dayOfWeek,同时设置 0时0分0秒
nextWeekday "" 重置当前实例时间为 下一个工作日,同时设置 0时0分0秒
previousWeekday "" 重置当前实例时间为 上一个工作日,同时设置 0时0分0秒
nextWeekendDay "" 重置当前实例时间为 下一个双休日,同时设置 0时0分0秒
previousWeekendDay "" 重置当前实例时间为 上一个双休日,同时设置 0时0分0秒
firstOfMonth $dayOfWeek(null) 重置当前实例时间为 本月第一周的指定dayOfWeek,同时设置 0时0分0秒
nthOfMonth $nth, $dayOfWeek 重置当前实例时间为 本月第n周的指定dayOfWeek,同时设置 0时0分0秒
lastOfMonth $dayOfWeek(null) 重置当前实例时间为 本月最后一周的指定dayOfWeek,同时设置 0时0分0秒
firstOfQuarter $dayOfWeek(null) 重置当前实例时间为 当前季度第一周的指定dayOfWeek,同时设置 0时0分0秒
nthOfQuarter $nth, $dayOfWeek 重置当前实例时间为 当前季度第n周的指定dayOfWeek,同时设置 0时0分0秒
lastOfQuarter $dayOfWeek(null) 重置当前实例时间为 当前季度最后一周的指定dayOfWeek,同时设置 0时0分0秒
firstOfYear $dayOfWeek(null) 重置当前实例时间为 本年第一周的指定dayOfWeek,同时设置 0时0分0秒
nthOfYear $nth, $dayOfWeek 重置当前实例时间为 本年第n周的指定dayOfWeek,同时设置 0时0分0秒
lastOfYear $dayOfWeek(null) 重置当前实例时间为 本年最后一周的指定dayOfWeek,同时设置 0时0分0秒
average Carbon $dt 重置当前实例时间为 与指定Carbon对象的中间时刻
modify $modify modify字符串重置当前实例时间
用途:格式化时间
方法名 参数 描述
__toString "" 按变量$toStringFormat的格式输出
toDateString "" 日期格式化输出
toTimeString "" 时间格式化输出
toDateTimeString "" 日期时间格式化输出
toDayDateTimeString "" 格式化输出如 "Fri, Jan 3, 2013 10:50 PM"
toAtomString "" 格式化输出如 "2012-10-20T14:12:26+00:00"
toCookieString "" 格式化输出如 "Friday, 02-Jan-2012 14:20:39 UTC"
toIso8601String "" toAtomString
toRfc822String "" 格式化输出如 "Mon, 15 Aug 05 15:52:01 +0000"
toRfc850String "" 格式化输出如 "Monday, 15-Aug-05 15:52:01 UTC"
toRfc1036String "" 格式化输出如 "2005-08-15T15:52:01+0000"
toRfc1123String "" 格式化输出如 "Mon, 15 Aug 2005 15:52:01 +0000"
toRfc2822String "" 格式化输出如 "Mon, 15 Aug 05 15:52:01 +0000"
toRfc3339String "" toAtomString
toRssString "" 格式化输出如 "Mon, 15 Aug 2005 15:52:01 +0000"
toW3cString "" 格式化输出如 "2005-08-15T15:52:01+00:00"
toFormattedDateString "" 格式化输出如 "Jan 11, 1999"
formatLocalized $format 指定格式本地化输出
用途:时间判断
方法名 参数 描述
eq Carbon $dt 判断当前Carbon实例与指定Carbon对象时间是否一样
equalTo Carbon $dt eq 方法
ne Carbon $dt 判断当前Carbon实例与指定Carbon对象时间是否不相同
notEqualTo Carbon $dt ne 方法
gt Carbon $dt 判断当前Carbon实例是否大于指定Carbon对象时间
greaterThan Carbon $dt gt 方法
gte Carbon $dt 判断当前Carbon实例是否大于等于指定Carbon对象时间
greaterThanOrEqualTo Carbon $dt gte 方法
lt Carbon $dt 判断当前Carbon实例是否小于指定Carbon对象时间
lessThan Carbon $dt lt 方法
lte Carbon $dt 判断当前Carbon实例是否小于等于指定Carbon对象时间
lessThanOrEqualTo Carbon $dt lte 方法
between Carbon $dt1, Carbon $dt2, $equal(true) 判断当前Carbon实例是否在指定Carbon对象时间之间, 第三个参数表示是否可以等于指定Carbon对象
min Carbon $dt 获取当前实例与指定Carbon对象中,最小的对象
minimum Carbon $dt min
max Carbon $dt 获取当前实例与指定Carbon对象中,最大的对象
maximum Carbon $dt max
closest Carbon $dt1, Carbon $dt2 获取最接近当前实例时间的Carbon对象
farthest Carbon $dt1, Carbon $dt2 获取最不接近当前实例时间的Carbon对象
isSameAs $format, Carbon $dt 判断当前实例与指定Carbon对象的format格式化结果是否相同
isSameDay Carbon $dt 判断当前实例与指定Carbon对象是否是同一天
isSameMonth Carbon $dt(null), $ofSameYear(false) 判断当前实例与指定Carbon对象月份是否相同
isBirthday Carbon $dt 判断当前实例与指定Carbon对象月日数是否相同
isSameYear Carbon $dt 判断当前实例与指定Carbon对象年份是否相同
isSunday "" 判断当前实例是否是周日
isMonday "" 判断当前实例是否是周一
isTuesday "" 判断当前实例是否是周二
isWednesday "" 判断当前实例是否是周三
isThursday "" 判断当前实例是否是周四
isFriday "" 判断当前实例是否是周五
isSaturday "" 判断当前实例是否是周六
isYesterday "" 判断当前实例是否是昨天
isToday "" 判断当前实例是否是今天
isTomorrow "" 判断当前实例是否是明天
isWeekday "" 判断当前实例是否属于工作日
isWeekend "" 判断当前实例是否属于周末双休
isLastWeek "" 判断当前实例是否属于上周
isNextWeek "" 判断当前实例是否属于下一周
isLastMonth "" 判断当前实例是否属于上一个月
isCurrentMonth "" 判断当前实例是否属于当前月
isNextMonth "" 判断当前实例是否属于下一个月
isLastYear "" 判断当前实例是否属于去年
isCurrentYear "" 判断当前实例是否属于当前年
isNextYear "" 判断当前实例是否属于下一年
isLeapYear "" 判断当前实例是否属于闰年
isLongYear "" 判断当前实例是否属于长年,即一年不只有52个星期
isPast "" 判断当前实例是否属于过去
isFuture "" 判断当前实例是否属于未来
用途:时间计算
方法名 参数 描述
addSecond $value(1) 当前实例添加指定数量的秒数,返回当前实例
subSecond $value(1) 当前实例减去指定数量的秒数,返回当前实例
addSeconds $value addSecond
subSeconds $value subSecond
addMinute $value(1) 当前实例添加指定数量的分钟数,返回当前实例
subMinute $value(1) 当前实例减去指定数量的分钟数,返回当前实例
addMinutes $value addMinute
subMinutes $value subMinute
addHour $value(1) 当前实例添加指定数量的小时数,返回当前实例
subHour $value(1) 当前实例减去指定数量的小时数,返回当前实例
addHours $value addHour
subHours $value subHour
addDay $value(1) 当前实例添加指定数量的天数,返回当前实例
subDay $value(1) 当前实例减去指定数量的天数,返回当前实例
addDays $value addDay
subDays $value subDay
addWeekday $value(1) 当前实例添加指定数量的工作日数,返回当前实例
subWeekday $value(1) 当前实例减去指定数量的工作日数,返回当前实例
addWeekdays $value addWeekday
subWeekdays $value subWeekday
addWeek $value(1) 当前实例添加指定数量的星期数,返回当前实例
subWeek $value(1) 当前实例减去指定数量的星期数,返回当前实例
addWeeks $value addWeek
subWeeks $value subWeek
addMonth $value(1) 当前实例添加指定数量的月数,返回当前实例
subMonth $value(1) 当前实例减去指定数量的月数,返回当前实例
addMonths $value addMonth
subMonths $value subMonth
addMonthWithOverflow(1) $value(1) 当前实例添加指定数量的月数(可溢出),返回当前实例
subMonthWithOverflow(1) $value(1) 当前实例添加指定数量的月数(可溢出),返回当前实例
addMonthsWithOverflow $value addMonthWithOverflow
subMonthsWithOverflow $value subMonthWithOverflow
addMonthNoOverflow(1) $value(1) 当前实例添加指定数量的月数(不可溢出),返回当前实例
subMonthNoOverflow(1) $value(1) 当前实例添加指定数量的月数(不可溢出),返回当前实例
addMonthsNoOverflow $value addMonthNoOverflow
subMonthsNoOverflow $value subMonthNoOverflow
addQuarter(1) $value(1) 当前实例添加指定数量的季度数,返回当前实例
subQuarter(1) $value(1) 当前实例减去指定数量的季度数,返回当前实例
addQuarters $value addQuarter
subQuarters $value subQuarter
addYear(1) $value(1) 当前实例添加指定数量的年数,返回当前实例
subYear(1) $value(1) 当前实例减去指定数量的年数,返回当前实例
addYears $value addYear
subYears $value subYear
addCentury(1) $value(1) 当前实例添加指定数量的世纪数,返回当前实例
subCentury(1) $value(1) 当前实例减去指定数量的世纪数,返回当前实例
addCenturies $value addCentury
subCenturies $value subCentury
用途:时间差值比较
方法名 参数 描述
diffInSeconds Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的秒数差,前者 - 后者; abs表示是否返回绝对值
secondsSinceMidnight "" 获取当前实例时间的 0时0分0秒 与当前实例时间的秒差
secondsUntilEndOfDay "" 获取当前实例时间的 23时59分59秒 与当前实例时间的秒差
diffInMinutes Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的分钟差, 取整
diffInHours Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的小时差, 取整
diffInHoursFiltered Closure $callback, Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的(通过回调函数较验的)小时差, 取整
diffInDays Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的天数差, 取整
diffInDaysFiltered Closure $callback, Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的(通过回调函数较验的)天数差, 取整
diffInWeekdays Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的工作日数差, 取整
diffInWeekendDays Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的双休日数差, 取整
diffInWeeks Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的星期数差, 取整
diffInMonths Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的月数差, 取整
diffInYears Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的年数差, 取整
diffFiltered CarbonInterval $ci, Closure $callback, Carbon $dt(null), $abs(true) 获取指定Carbon对象与当前实例时间的(通过回调函数较验的)$ci差, 取整
diffForHumans Carbon $other(null), $absolute(false), $short(false) 获取指定Carbon对象与当前实例时间的时间差,以便于人类阅读的格式呈现
用途:Getter & Setter
方法名 参数 描述
getDays(static) "" 获取days of the week
getWeekStartsAt(static) "" 获取一周的第一天
setWeekStartsAt(static) $day 设置一周的第一天
getWeekEndsAt(static) "" 获取一周的最后一天
setWeekEndsAt(static) $day 设置一周的最后一天
getWeekendDays(static) "" 获取双休日(数组)
setWeekendDays(static) $days 设置双休日
getTranslator(static) "" 获取translator实例
setTranslator(static) TranslatorInterface $translator 设置translator实例
getLocale(static) "" 获取当前本地化语言
setLocale(static) $locale 设置当前本地化语言
timezone $value 设置时区
tz $value 设置时区
setTimezone $value 设置时区
setToStringFormat(static) $format 设置变量$toStringFormat
resetToStringFormat(static) "" 设置变量$toStringFormat为默认值
setTestNow(static) $testNow(null) 设置变量$testNow,测试专用,初始化时的$now
getTestNow(static) "" 获取变量$testNow
hasTestNow(static) "" 判断$testNow是否为空
用途:其它
方法名 参数 描述
setUtf8(static) $utf8 设置是否采用 utf8 编码方式
getLastErrors(static) "" 获取无效时间的错误格式模板
serialize "" 返回当前实例的序列化字符串
hasRelativeKeywords(static) $time 判断字符串中是否有指定的关键字
shouldOverflowMonths(static) "" 获取变量$monthsOverflow
useMonthsOverflow(static) $monthsOverflow(true) 设置变量$monthsOverflow
resetMonthsOverflow(static) "" 重置变量$monthsOverflowtrue
__get $name 魔术方法
__isset $name 魔术方法
__set $name, $value 魔术方法
CarbonInterval 用途:生成CarbonInterval实例
方法名 参数 描述
__construct $years(1), $months(null), $weeks(null), $days(null), $hours(null), $minutes(null), $seconds(null) 创建CarbonInterval实例
create(static) $years(1), $months(null), $weeks(null), $days(null), $hours(null), $minutes(null), $seconds(null) 创建CarbonInterval实例
second(static) $value 创建 CarbonInterval 实例
seconds(static) $value 创建 CarbonInterval 实例
minute(static) $value 创建 CarbonInterval 实例
minutes(static) $value 创建 CarbonInterval 实例
hour(static) $value 创建 CarbonInterval 实例
hours(static) $value 创建 CarbonInterval 实例
day(static) $value 创建 CarbonInterval 实例
days(static) $value 创建 CarbonInterval 实例
dayz(static) $value 创建 CarbonInterval 实例
week(static) $value 创建 CarbonInterval 实例
weeks(static) $value 创建 CarbonInterval 实例
month(static) $value 创建 CarbonInterval 实例
months(static) $value 创建 CarbonInterval 实例
year(static) $value 创建 CarbonInterval 实例
years(static) $value 创建 CarbonInterval 实例
instance(static) $value 创建 CarbonInterval 实例
用途:本地化
方法名 参数 描述
translator(static) "" 初始化translator实例
getTranslator(static) "" 获取translator实例
setTranslator(static) TranslatorInterface $translator 设置translator实例
getLocale(static) "" 获取当前本地化语言
setLocale(static) $locale 设置当前本地化语言
用途:计算
方法名 参数 描述
add DateInterval $interval 将指定DateInterval的时间叠加到当前实例
用途:格式化
方法名 参数 描述
spec "" 获取规范的间隔描述字符串
forHumans "" 获取便于人类阅读的间隔描述字符串
__toString "" forHumans
用途:其它
方法名 参数 描述
__get "" 魔术方法;可操作变量有years/months/dayz/hours/minutes/seconds/weeks/daysExcludeWeeks/dayzExcludeWeeks
__set "" 魔术方法;可操作变量有years/months/dayz/hours/minutes/seconds/weeks/daysExcludeWeeks/dayzExcludeWeeks
__call "" 魔术方法;可操作方法有years/year/months/month/weeks/week/days/dayz/day/hours/hour/minutes/minute/seconds/second
weeksAndDays $weeks, $days 为当前实例的dayz变量赋值为($weeks * Carbon::DAYS_PER_WEEK) + $days

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22985.html

相关文章

  • 使用 Carbon 计算时间差

    摘要:它是专门用来处理和时间相关的类,除了这里用到的实例化时间计算时间等,还有很多实用的功能,在参考资料中有相关链接,可以查看。 导语 这个需求是这样的,我的电饭锅有定时功能,第二天早上想要喝粥的话,就要设置倒计时,每次就要算一下要设置多少时间,干脆就写个代码好了。很简单的功能,不值得写一篇,另一个目的其实是记录一下从开发到提交 GitHub 的流程。代码可查看 GitHub。 本地开发 先...

    LinkedME2016 评论0 收藏0
  • PHP 开发者应了解的 24 个库

    摘要:下面是一个例子这个库要求你至少安装了和其中的一个,这可能意味着,在大多数主机提供商提供的主机上它可能用不了。借助它,你可以忘记如何书写乏味的有一个姊妹库叫,是一个基于的实现。 showImg(http://segmentfault.com/img/bVbJml); 作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在 Github 上很容易发现和使用这些库...

    0x584a 评论0 收藏0
  • [转+] Carbon中文文档

    摘要:原文地址中文文档介绍是的日期处理类库。例如作者所在的时区为东京时间减小时,因此在下午一点后。最后提到的这两个方法都是处理时间戳的。以下是当前支持的时间转换字值得注意的是像和方法等相关的修改会把日期的时间部分设置成。 原文地址 : Carbon中文文档 介绍 Carbon 是php的日期处理类库(A simple PHP API extension for DateTime.)。 Car...

    cyqian 评论0 收藏0
  • Carbon中文文档

    摘要:是的日期处理类库。另外可以默认设置方法所要显示的时间日期格式。一些特殊的过滤方法,像和可以帮助你过滤时间差中的或者一个自定义的时间间隔。对于人们来说一月前比天前更加易与理解。中定义了以下常量。 Introduction Carbon 是php的日期处理类库(A simple PHP API extension for DateTime.)。Carbon 继承了PHP的 Datetime...

    banana_pi 评论0 收藏0
  • Laravel 的十八个最佳实践

    摘要:本文翻译改编自的十八个最佳实践这篇文章并不是什么由改编的原则模式等。只是为了让你注意你在现实生活的项目中最常忽略的内容。单一职责原则正在帮助你避免重复。当然,这也包括了模板的范围等。此外,也拥有很棒的内置工具,比如软删除事件范围等。 showImg(https://segmentfault.com/img/remote/1460000015166532); 本文翻译改编自 Larave...

    gitmilk 评论0 收藏0

发表评论

0条评论

Yuqi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<