jenssegers / date
一个日期库,帮助您在不同语言中处理日期
Requires
- nesbot/carbon: ^2.16
Requires (Dev)
- phpunit/phpunit: ^7.5
- satooshi/php-coveralls: ^2.0
- v4.0.0
- v4.0.0-beta
- v3.5.0
- v3.4.0
- v3.3.1
- v3.3.0
- v3.2.12
- v3.2.11
- v3.2.10
- v3.2.9
- v3.2.8
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- dev-master / 3.1.x-dev
- v3.1.1
- v3.1.0
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- 3.0.1
- v3.0.0
- v3.0.0-beta.2
- v3.0.0-beta
- 2.0.x-dev
- v2.0.22
- v2.0.21
- v2.0.20
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.0
This package is auto-updated.
Last update: 2024-09-04 09:20:37 UTC
README
此日期库扩展了 Carbon,增加了多语言支持。如 format
、diffForHumans
、parse
、createFromFormat
以及新的 timespan
方法,现在将根据您的区域设置进行翻译。
所有由贡献者完成的翻译都已移动到 Carbon 2 包中。此包现在使用 Carbon 翻译为您提供更好的多语言支持。翻译问题应在 Carbon 仓库 上报告。请也查看原始文档 此处。
安装
使用 composer 安装
composer require jenssegers/date
Laravel
包含一个服务提供者以与 Laravel 框架集成。此提供者将获取应用程序的区域设置并用于翻译。如果您使用 Laravel 5.5+ 并使用自动发现,则该服务将自动注册。否则,要将服务提供者添加到 config/app.php
中的 providers 数组中,请添加以下内容:
Jenssegers\Date\DateServiceProvider::class,
您也可以将其作为 Facade 添加到 config/app.php
中。
'Date' => Jenssegers\Date\Date::class,
语言
此包包含以下语言的文件(https://carbon.nesbot.com/docs/#supported-locales):
- Afar (aa)
- Afrikaans (af)
- Aghem (agq)
- Aguaruna (agr)
- Akan (ak)
- Amharic (am)
- Aragonese (an)
- Angika (anp)
- Arabic (ar)
- Assamese (as)
- Asu (asa)
- Asturian (ast)
- Southern Aymara (ayc)
- Azerbaijani (az)
- Basaa (bas)
- Belarusian (be)
- Bemba (bem)
- ber (ber)
- Bena (bez)
- Bulgarian (bg)
- Bhili (bhb)
- Bhojpuri (bho)
- Bislama (bi)
- Bambara (bm)
- Bengali (bn)
- Tibetan (bo)
- Breton (br)
- Bodo (brx)
- Bosnian (bs)
- Bilin (byn)
- Catalan (ca)
- Chakma (ccp)
- Chechen (ce)
- Chiga (cgg)
- Cherokee (chr)
- Chinese (cmn)
- Crimean Turkish (crh)
- Czech (cs)
- Kashubian (csb)
- Church Slavic (cu)
- Chuvash (cv)
- Welsh (cy)
- Danish (da)
- Taita (dav)
- German (de)
- Zarma (dje)
- Dogri (macrolanguage) (doi)
- Lower Sorbian (dsb)
- Duala (dua)
- Divehi (dv)
- Jola-Fonyi (dyo)
- Dzongkha (dz)
- Embu (ebu)
- Ewe (ee)
- Greek (modern) (el)
- English (en)
- Esperanto (eo)
- Spanish (es)
- Estonian (et)
- Basque (eu)
- Ewondo (ewo)
- Persian (fa)
- Fulah (ff)
- Finnish (fi)
- Filipino (fil)
- Faroese (fo)
- French (fr)
- Friulian (fur)
- Western Frisian (fy)
- Irish (ga)
- Gaelic (gd)
- Geez (gez)
- Galician (gl)
- Konkani (gom)
- Swiss German (gsw)
- Gujarati (gu)
- Gusii (guz)
- Manx (gv)
- Hausa (ha)
- Hakka Chinese (hak)
- Hawaiian (haw)
- Hebrew (modern) (he)
- Hindi (hi)
- Fiji Hindi (hif)
- Chhattisgarhi (hne)
- Croatian (hr)
- Upper Sorbian (hsb)
- 海地语(ht)
- 匈牙利语(hu)
- 亚美尼亚语(hy)
- 国际化(i18n)
- 国际语(ia)
- 印度尼西亚语(id)
- 伊博语(ig)
- 四川彝语(ii)
- 因纽特语(ik)
- 印地语(in)
- 冰岛语(is)
- 意大利语(it)
- 因纽特语(iu)
- 希伯来语(iw)
- 日语(ja)
- 恩戈马语(jgo)
- 马查梅语(jmc)
- 爪哇语(jv)
- 格鲁吉亚语(ka)
- 卡比里语(kab)
- 卡姆巴语(kam)
- 马孔德语(kde)
- 卡布维尔语(kea)
- 科拉奇尼语(khq)
- 基库尤语(ki)
- 哈萨克语(kk)
- 卡科语(kkj)
- 格陵兰语(kl)
- 卡尔仁金语(kln)
- 柬埔寨语(km)
- 卡纳达语(kn)
- 韩语(ko)
- 康卡尼语(kok)
- 克什米尔语(ks)
- 尚巴语(ksb)
- 巴菲亚语(ksf)
- 科隆尼亚语(ksh)
- 库尔德语(ku)
- 康沃尔语(kw)
- 吉尔吉斯语(ky)
- 兰吉语(lag)
- 卢森堡语(lb)
- 刚果语(lg)
- 林堡语(li)
- 利古里亚语(lij)
- 拉科塔语(lkt)
- 林加拉语(ln)
- 老挝语(lo)
- 北部卢里语(lrc)
- 立陶宛语(lt)
- 卢巴-卡坦加语(lu)
- 鲁奥语(luo)
- 鲁伊亚语(luy)
- 拉脱维亚语(lv)
- 文学中文(lzh)
- 马加希语(mag)
- 迈蒂利语(mai)
- 马萨伊语(mas)
- 梅鲁语(mer)
- 毛里求斯语(mfe)
- 马拉加什语(mg)
- 马库瓦-梅托语(mgh)
- 梅塔语(mgo)
- 东部马里语(mhr)
- 毛利语(mi)
- 米斯基托语(miq)
- 卡尔比语(mjw)
- 马其顿语(mk)
- 马拉雅拉姆语(ml)
- 蒙古语(mn)
- Manipuri 语(mni)
- 毛语(mo)
- 马拉地语(mr)
- 马来语(ms)
- 马耳他语(mt)
- 芒达语(mua)
- 缅甸语(my)
- 马赞德兰语(mzn)
- 闽南语(nan)
- 纳马语(naq)
- 挪威 bokmål 语(nb)
- 北方恩德贝勒语(nd)
- 低地德语(nds)
- 尼泊尔语(ne)
- 中部纳瓦特尔语(nhn)
- 纽埃语(niu)
- 荷兰语(nl)
- 卡西奥语(nmg)
- 挪威 nyorsk 语(nn)
- 尼姆博恩语(nnh)
- 挪威语(no)
- 南方恩德贝勒语(nr)
- 北部索托语(nso)
- 努尔语(nus)
- 恩扬科莱语(nyn)
- 奥克西塔尼亚语(oc)
- 奥罗莫语(om)
- 奥里亚语(or)
- 奥塞梯语(os)
- 旁遮普语(pa)
- 帕皮阿门托语(pap)
- 波兰语(pl)
- 普鲁士语(prg)
- 普什图语(ps)
- 葡萄牙语(pt)
- 基切瓦语(qu)
- 库斯科基切瓦语(quz)
- 拉贾斯坦语(raj)
- 罗曼什语(rm)
- 伦迪语(rn)
- 罗马尼亚语(ro)
- 罗莫语(rof)
- 俄语(ru)
- 卢旺达语(rw)
- 鲁瓦语(rwk)
- 梵文(sa)
- 萨哈语(sah)
- 萨姆布鲁语(saq)
- 桑提亚利语(sat)
- 桑古语(sbp)
- 撒丁语(sc)
- 信德语(sd)
- 北方萨米语(se)
- 塞纳语(seh)
- 科伊拉博罗塞尼语(ses)
- 桑戈语(sg)
- 萨莫格itian 语(sgs)
- sh 语(sh)
- 塔吉希特语(shi)
- 掸语(shn)
- 舒斯瓦普语(shs)
- 僧伽罗语(si)
- 西达摩语(sid)
- 斯洛伐克语(sk)
- 斯洛文尼亚语(sl)
- 萨摩亚语(sm)
- 伊纳里萨米语(smn)
- 绍纳语(sn)
- 索马里语(so)
- 阿尔巴尼亚语(sq)
- 塞尔维亚语(sr)
- 斯威士语(ss)
- 南方索托语(st)
- 瑞典语(sv)
- 斯瓦希里语(sw)
- 西里西亚语(szl)
- 泰米尔语(ta)
- 图卢语(tcy)
- 泰卢固语(te)
- 提格雷语(teo)
- 特图姆语(tet)
- 塔吉克语(tg)
- 泰语(th)
- 契特维亚图鲁语(the)
- 提格雷尼亚语(ti)
- 提格雷语(tig)
- 土库曼语(tk)
- 他加禄语(tl)
- 克林贡语(tlh)
- 茨瓦纳语(tn)
- 汤加语(Tonga Islands)(to)
- 托克皮辛语(tpi)
- 土耳其语(tr)
- 茨翁加语(ts)
- 鞑靼语(tt)
- 塔萨瓦克语(twq)
- 塔洛萨尼亚语(tzl)
- 塔马齐格特语(tzm)
- 维吾尔语(ug)
- 乌克兰语(uk)
- 乌纳米语(unm)
- 乌尔都语(ur)
- 乌兹别克语(uz)
- 瓦伊语(vai)
- 文达语(ve)
- 越南语(vi)
- 沃拉普克语(vo)
- 万琼语(vun)
- 瓦隆语(wa)
- 瓦尔斯语(wae)
- 沃尔耶塔语(wal)
- 沃洛夫语(wo)
- 科萨语(xh)
- 索加语(xog)
- 扬本语(yav)
- 意第绪语(yi)
- 约鲁巴语(yo)
- 粤语(yue)
- 约乌(摩罗贝省)(yuw)
- 标准摩洛哥塔马齐格特语(zgh)
- 中文(zh)
- 祖鲁语(zu)
用法
Date类扩展了Carbon方法,如format
和diffForHumans
,并根据您的区域进行翻译
use Jenssegers\Date\Date; Date::setLocale('nl'); echo Date::now()->format('l j F Y H:i:s'); // zondag 28 april 2013 21:58:16 echo Date::parse('-1 day')->diffForHumans(); // 1 dag geleden
Date类还添加了一些别名和额外的函数,例如:ago
是diffForHumans
的别名,还有timespan
方法
echo $date->timespan(); // 3 months, 1 week, 1 day, 3 hours, 20 minutes
如parse
和createFromFormat
这样的函数也支持“反向翻译”。当使用已翻译的输入调用这些函数时,它会在传递给DateTime之前尝试将其翻译成英语
$date = Date::createFromFormat('l d F Y', 'zaterdag 21 maart 2015');
Carbon
Carbon是Date类的基础库。所有原始的Carbon操作仍然可用,更多信息请访问https://carbon.nesbot.com/docs。以下是一些可用方法
创建日期
您可以创建Date对象,就像创建DateTime对象一样(https://php.ac.cn/manual/en/datetime.construct.php)
$date = new Date(); $date = new Date('2000-01-31'); $date = new Date('2000-01-31 12:00:00'); // With time zone $date = new Date('2000-01-31', new DateTimeZone('Europe/Brussels'));
您可以省略创建DateTimeZone对象
$date = new Date('2000-01-31', 'Europe/Brussels');
从相对格式创建日期(https://php.ac.cn/manual/en/datetime.formats.relative.php)
$date = new Date('now'); $date = new Date('today'); $date = new Date('+1 hour'); $date = new Date('next monday');
这也可以使用以下静态方法实现
$date = Date::parse('now'); $date = Date::now();
从时间戳创建日期
$date = new Date(1367186296);
或从现有的日期或时间创建
$date = Date::createFromDate(2000, 1, 31); $date = Date::createFromTime(12, 0, 0); $date = Date::create(2000, 1, 31, 12, 0, 0);
日期格式化
您可以像格式化DateTime对象一样格式化Date对象(https://php.ac.cn/manual/en/function.date.php)
echo Date::now()->format('Y-m-d'); // 2000-01-31
Date对象可以转换为字符串
echo Date::now(); // 2000-01-31 12:00:00
获取人类可读的输出(diffForHumans的别名)
echo $date->ago(); // 5 days ago
计算时间段
$date = new Date('+1000 days'); echo Date::now()->timespan($date); // 2 years, 8 months, 3 weeks, 5 days // or even echo Date::now()->timespan('+1000 days');
获取自日期以来的年份
$date = new Date('-10 years'); echo $date->age; // 10 $date = new Date('+10 years'); echo $date->age; // -10
日期操作
您可以使用add和sub方法,使用相对间隔(https://php.ac.cn/manual/en/datetime.formats.relative.php)进行操作
$yesterday = Date::now()->sub('1 day'); $tomorrow = Date::now()->add('1 day'); // ISO 8601 $date = Date::now()->add('P2Y4DT6H8M');
您可以像对象一样访问和修改所有日期属性
$date->year = 2013: $date->month = 1; $date->day = 31; $date->hour = 12; $date->minute = 0; $date->second = 0;
贡献
语言贡献应提交至https://github.com/briannesbitt/Carbon。
许可
Laravel Date遵循MIT许可证(MIT)。
安全联系信息
要报告安全漏洞,请遵循这些步骤。