Carbon--php时间扩展

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


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

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


最新稳定版本:1.29.0

   

文件结构:

目录描述
-- srcCarbon源文件
-- src\CarbonCarbon源文件
-- src\Carbon\CarbonInterval.phpDateInterval类的二次扩展类CarbonInterval;主要用于时差计算;
-- src\Carbon\Carbon.phpDateTime类的二次扩展类Carbon;提供时间计算,格式化输出的功能;
-- src\Carbon\Exceptions自定义异常文件夹
-- src\Carbon\Lang语言本地化文件夹;Carbon类的diffForHumans方法会用到;


-- testsCarbon测试用例文件
-- tests\AbstractTestCase.php所有测试文件的父类;提供了执行前初始化执行后清理的功能, 及其它公共的API;
-- tests\Carbon针对src\\Carbon\\Carbon.php的测试用例组
-- tests\CarbonInterval针对src\\Carbon\\CarbonInterval.php的测试用例组
-- tests\Localization针对src\\Carbon\\Lang的测试用例组


冷暖自知一抹茶ck

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秒
averageCarbon $dt重置当前实例时间为 与指定Carbon对象的中间时刻
modify$modifymodify字符串重置当前实例时间

用途:格式化时间

方法名参数描述
__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指定格式本地化输出

用途:时间判断

方法名参数描述
eqCarbon $dt判断当前Carbon实例与指定Carbon对象时间是否一样
equalToCarbon $dt同 eq 方法
neCarbon $dt判断当前Carbon实例与指定Carbon对象时间是否不相同
notEqualToCarbon $dt同 ne 方法
gtCarbon $dt判断当前Carbon实例是否大于指定Carbon对象时间
greaterThanCarbon $dt同 gt 方法
gteCarbon $dt判断当前Carbon实例是否大于等于指定Carbon对象时间
greaterThanOrEqualToCarbon $dt同 gte 方法
ltCarbon $dt判断当前Carbon实例是否小于指定Carbon对象时间
lessThanCarbon $dt同 lt 方法
lteCarbon $dt判断当前Carbon实例是否小于等于指定Carbon对象时间
lessThanOrEqualToCarbon $dt同 lte 方法
betweenCarbon $dt1, Carbon $dt2, $equal(true)判断当前Carbon实例是否在指定Carbon对象时间之间, 第三个参数表示是否可以等于指定Carbon对象
minCarbon $dt获取当前实例与指定Carbon对象中,最小的对象
minimumCarbon $dtmin
maxCarbon $dt获取当前实例与指定Carbon对象中,最大的对象
maximumCarbon $dtmax
closestCarbon $dt1, Carbon $dt2获取最接近当前实例时间的Carbon对象
farthestCarbon $dt1, Carbon $dt2获取最不接近当前实例时间的Carbon对象
isSameAs$format, Carbon $dt判断当前实例与指定Carbon对象的format格式化结果是否相同
isSameDayCarbon $dt判断当前实例与指定Carbon对象是否是同一天
isSameMonthCarbon $dt(null), $ofSameYear(false)判断当前实例与指定Carbon对象月份是否相同
isBirthdayCarbon $dt判断当前实例与指定Carbon对象月日数是否相同
isSameYearCarbon $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$valueaddSecond
subSeconds$valuesubSecond
addMinute$value(1)当前实例添加指定数量的分钟数,返回当前实例
subMinute$value(1)当前实例减去指定数量的分钟数,返回当前实例
addMinutes$valueaddMinute
subMinutes$valuesubMinute
addHour$value(1)当前实例添加指定数量的小时数,返回当前实例
subHour$value(1)当前实例减去指定数量的小时数,返回当前实例
addHours$valueaddHour
subHours$valuesubHour
addDay$value(1)当前实例添加指定数量的天数,返回当前实例
subDay$value(1)当前实例减去指定数量的天数,返回当前实例
addDays$valueaddDay
subDays$valuesubDay
addWeekday$value(1)当前实例添加指定数量的工作日数,返回当前实例
subWeekday$value(1)当前实例减去指定数量的工作日数,返回当前实例
addWeekdays$valueaddWeekday
subWeekdays$valuesubWeekday
addWeek$value(1)当前实例添加指定数量的星期数,返回当前实例
subWeek$value(1)当前实例减去指定数量的星期数,返回当前实例
addWeeks$valueaddWeek
subWeeks$valuesubWeek
addMonth$value(1)当前实例添加指定数量的月数,返回当前实例
subMonth$value(1)当前实例减去指定数量的月数,返回当前实例
addMonths$valueaddMonth
subMonths$valuesubMonth
addMonthWithOverflow(1)$value(1)当前实例添加指定数量的月数(可溢出),返回当前实例
subMonthWithOverflow(1)$value(1)当前实例添加指定数量的月数(可溢出),返回当前实例
addMonthsWithOverflow$valueaddMonthWithOverflow
subMonthsWithOverflow$valuesubMonthWithOverflow
addMonthNoOverflow(1)$value(1)当前实例添加指定数量的月数(不可溢出),返回当前实例
subMonthNoOverflow(1)$value(1)当前实例添加指定数量的月数(不可溢出),返回当前实例
addMonthsNoOverflow$valueaddMonthNoOverflow
subMonthsNoOverflow$valuesubMonthNoOverflow
addQuarter(1)$value(1)当前实例添加指定数量的季度数,返回当前实例
subQuarter(1)$value(1)当前实例减去指定数量的季度数,返回当前实例
addQuarters$valueaddQuarter
subQuarters$valuesubQuarter
addYear(1)$value(1)当前实例添加指定数量的年数,返回当前实例
subYear(1)$value(1)当前实例减去指定数量的年数,返回当前实例
addYears$valueaddYear
subYears$valuesubYear
addCentury(1)$value(1)当前实例添加指定数量的世纪数,返回当前实例
subCentury(1)$value(1)当前实例减去指定数量的世纪数,返回当前实例
addCenturies$valueaddCentury
subCenturies$valuesubCentury

用途:时间差值比较

方法名参数描述
diffInSecondsCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的秒数差,前者 - 后者; abs表示是否返回绝对值
secondsSinceMidnight''获取当前实例时间的 0时0分0秒 与当前实例时间的秒差
secondsUntilEndOfDay''获取当前实例时间的 23时59分59秒 与当前实例时间的秒差
diffInMinutesCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的分钟差, 取整
diffInHoursCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的小时差, 取整
diffInHoursFilteredClosure $callback, Carbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的(通过回调函数较验的)小时差, 取整
diffInDaysCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的天数差, 取整
diffInDaysFilteredClosure $callback, Carbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的(通过回调函数较验的)天数差, 取整
diffInWeekdaysCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的工作日数差, 取整
diffInWeekendDaysCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的双休日数差, 取整
diffInWeeksCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的星期数差, 取整
diffInMonthsCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的月数差, 取整
diffInYearsCarbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的年数差, 取整
diffFilteredCarbonInterval $ci, Closure $callback, Carbon $dt(null), $abs(true)获取指定Carbon对象与当前实例时间的(通过回调函数较验的)$ci差, 取整
diffForHumansCarbon $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)''重置变量$monthsOverflow为 true
__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设置当前本地化语言

用途:计算

方法名参数描述
addDateInterval $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



冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论