城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

Carbon在Laravel中的简单使用

11月27日 拭朱砂投稿
  在编写PHP应用时经常需要处理日期和时间,这篇文章带你了解一下Carbon继承自PHPDateTime类的API扩展,它使得处理日期和时间更加简单。Laravel中默认使用的时间处理类就是Carbon。?phpnamespaceCclassCarbonextendsDateTime{codehere}
  你可以在Carbon命名空间的Carbon类中看到上面声明的代码片段。
  获取当前时间
  可以同now()方法获取当前的日期和时间。如果你不指定参数,它会使用PHP配置中的时区:?phpechoCarbon::now();2016101420:21:20?
  如果你想使用一个不同的时区,你需要传递一个有效的时区作为参数:直接使用字符串echoCarbon::now(EuropeLondon);2016101420:21:20或者echoCarbon::now(newDateTimeZone(EuropeLondon));
  除now()外,还提供了today()、tomorrow()、yesterday()等静态函数,不过,它们的时间都是00:00:00:echoCarbon::now();2016101415:18:34echoCarbon::today();2016101400:00:00echoCarbon::tomorrow(EuropeLondon);2016101400:00:00echoCarbon::yesterday();2016101400:00:00
  以上输出结果其实是一个Carbon类型的日期时间对象:Carbon{179date:2016061400:00:00。000000timezonetype:3timezone:UTC}
  要想获取字符串类型的日期,可以使用下面的代码:echoCarbon::today()toDateTimeString();echoCarbon::yesterday()toDateTimeString();echoCarbon::tomorrow()toDateTimeString();
  日期类型转为字符串
  如上所述,默认情况下,Carbon的方法返回的为一个日期时间对象。虽然它是一个对象,但是你却可以直接使用echo输出结果,因为有toString魔术方法。但是如果你想把它转为字符串,可以使用toDateString或toDateTimeString方法:echoCarbon::now()toDateString();20161014echoCarbon::now()toDateTimeString();2016101420:22:50
  日期解析
  你还可以使用parse方法解析任何顺序和类型的日期(结果为Carbon类型的日期时间对象):echoCarbon::parse(20161015)toDateTimeString();2016101500:00:00echoCarbon::parse(20161015)toDateTimeString();2016101500:00:00echoCarbon::parse(2016101500:10:25)toDateTimeString();2016101500:10:25echoCarbon::parse(today)toDateTimeString();2016101500:00:00echoCarbon::parse(yesterday)toDateTimeString();2016101400:00:00echoCarbon::parse(tomorrow)toDateTimeString();2016101600:00:00echoCarbon::parse(2daysago)toDateTimeString();2016101320:49:53echoCarbon::parse(3days)toDateTimeString();2016101820:49:53echoCarbon::parse(2weeks)toDateTimeString();2016102920:49:53echoCarbon::parse(4months)toDateTimeString();2017021520:49:53echoCarbon::parse(1year)toDateTimeString();2015101520:49:53echoCarbon::parse(nextwednesday)toDateTimeString();2016101900:00:00echoCarbon::parse(lastfriday)toDateTimeString();2016101400:00:00
  构造日期
  你还可以使用单独的年月日来构造日期:year2015;month04;day12;echoCarbon::createFromDate(year,month,day);2015041220:55:59hour02;minute15:second30;echoCarbon::create(year,month,day,hour,minute,second);2015041202:15:30echoCarbon::createFromDate(null,12,25);年默认为当前年份
  此外,还可以传递一个有效的时区作为最后一个参数。
  日期操作
  日期操作可以通过add(增加)或sub(减去)跟上要增加或减去的单位来完成。例如,你想给一个日期增加指定的天数,你可以使用addDays方法。此外还提供了一个modify方法,参数格式为或跟上值及单位。所以,如果你想给当前日期增加一年,你可以传递1year:echoCarbon::now()addDays(25);2016110914:00:01echoCarbon::now()addWeeks(3);2016110514:00:01echoCarbon::now()addHours(25);2016101615:00:01echoCarbon::now()subHours(2);2016101512:00:01echoCarbon::now()addHours(2)addMinutes(12);2016101516:12:01echoCarbon::now()modify(15days);2016103014:00:01echoCarbon::now()modify(2days);2016101314:00:01
  日期比较
  在Carbon中你可以使用下面的方法来比较日期:min返回最小日期。max返回最大日期。eq判断两个日期是否相等。gt判断第一个日期是否比第二个日期大。lt判断第一个日期是否比第二个日期小。gte判断第一个日期是否大于等于第二个日期。lte判断第一个日期是否小于等于第二个日期。echoCarbon::now()tzNAmericaTorontofirstCarbon::create(2012,9,5,23,26,11);secondCarbon::create(2012,9,5,20,26,11,AmericaVancouver);echofirsttoDateTimeString();2012090523:26:11echofirsttzNAmericaTorontoechosecondtoDateTimeString();2012090520:26:11echosecondtzNAmericaVancouvervardump(firsteq(second));bool(true)vardump(firstne(second));bool(false)vardump(firstgt(second));bool(false)vardump(firstgte(second));bool(true)vardump(firstlt(second));bool(false)vardump(firstlte(second));bool(true)firstsetDateTime(2012,1,1,0,0,0);secondsetDateTime(2012,1,1,0,0,0);RemembertzisAmericaVancouvervardump(firsteq(second));bool(false)vardump(firstne(second));bool(true)vardump(firstgt(second));bool(false)vardump(firstgte(second));bool(false)vardump(firstlt(second));bool(true)vardump(firstlte(second));bool(true)
  要判断一个日期是否介于两个日期之间,可以使用between()方法,第三个可选参数指定比较是否可以相等,默认为true:firstCarbon::create(2012,9,5,1);secondCarbon::create(2012,9,5,5);vardump(Carbon::create(2012,9,5,3)between(first,second));bool(true)vardump(Carbon::create(2012,9,5,5)between(first,second));bool(true)vardump(Carbon::create(2012,9,5,5)between(first,second,false));bool(false)
  此外还提供了一些辅助方法,你可以从它们的名字中明白其含义:dtCarbon::now();dtisWeekday();dtisWeekend();dtisYesterday();dtisToday();dtisTomorrow();dtisFuture();dtisPast();dtisLeapYear();dtisSameDay(Carbon::now());bornCarbon::createFromDate(1987,4,23);noCakeCarbon::createFromDate(2014,9,26);yesCakeCarbon::createFromDate(2014,4,23);overTheHillCarbon::now()subYears(50);vardump(bornisBirthday(noCake));bool(false)vardump(bornisBirthday(yesCake));bool(true)vardump(overTheHillisBirthday());bool(true)defaultcompareittotoday!
  diffForHumans
  一个月前比30天前更便于阅读,很多日期库都提供了这个常见的功能,日期被解析后,有下面四种可能性:
  当比较的时间超过当前默认时间
  1天前
  5月前
  当用将来的时间与当前默认时间比较
  1小时距现在
  5月距现在
  当比较的值超过另一个值
  1小时前
  5月前
  当比较的值在另一个值之后
  1小时后
  5月后
  你可以把第二个参数设置为true来删除前、距现在等修饰语:diffForHumans(Carbonother,true)。echoCarbon::now()subDays(5)diffForHumans();5天前echoCarbon::now()diffForHumans(Carbon::now()subYear());1年后dtCarbon::createFromDate(2011,8,1);echodtdiffForHumans(dtcopy()addMonth());1月前echodtdiffForHumans(dtcopy()subMonth());11月后echoCarbon::now()addSeconds(5)diffForHumans();5秒距现在echoCarbon::now()subDays(24)diffForHumans();3周前echoCarbon::now()subDays(24)diffForHumans(null,true);3周
  作者:童蒙vlog
  链接:https:www。jianshu。comp9d2b576acded
  来源:简书
  著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
投诉 评论 转载

华为我有说过缺芯片么?这两天逛京东,发现线上mate40pro5G版实现现货购买,线下也有现货,我去,800万芯片还没用完?估计,麒麟9000已经实现灰色供应老美制裁,真的是给了华为一次灾难,……OPPOFindX5配置大缩水,相比较OPPOFindX3值OPPOFindX5整体硬件配置相比较findX3缩水了很多。一是屏幕上,从X3的lpto自适应刷新率2K屏幕缩水为1080P的的周冬雨排列屏幕,分辨率、通脱度、亮度全面退步。……小米ampampamp五菱宏光达成合作!年轻人的第一辆汽车要不知道我鸭粉中的米粉们,有没有看昨晚声势浩大的小米直面会如果没看,那恭喜你,节省了生命中宝贵的20来分钟反正鸭鸭是瞅着海报上15款新品发布的字样,抱着极大的期待。只……拆开比亚迪与特斯拉电池组对比,修车师傅两者差距太大大家好,我是小米,现在国家主张大力发展新能源汽车,新能源汽车也是为了汽车市场的发展趋势。而说到新能源汽车最先想到的就是特斯拉,他的名气和销量都是行业领先的。而国产品牌里销量和特……几乎没有差评,2022年最值得考虑的4款手机,看看你怎么选?2022年已经过去了六分之一,很多朋友都来主动咨询我今年最值得入手的手机,所以今天来给大家介绍三款我心目中的开年神机,感兴趣的朋友不妨了解一下。OPPOFindX5Pro……特斯拉被判退一赔三将胜诉车主告上法庭索赔505万元,车主称银【文观察者网熊超然】去年,天津车主韩潮与特斯拉的一起二手车维权纠纷案件一审宣判,韩潮一审胜诉,特斯拉被判退一赔三。此后,特斯拉提出上诉,直到近日,该案终审判决维持了一审判决结果……Carbon在Laravel中的简单使用在编写PHP应用时经常需要处理日期和时间,这篇文章带你了解一下Carbon继承自PHPDateTime类的API扩展,它使得处理日期和时间更加简单。Laravel中默认使用的时……解析植物胰岛素科学家发现水稻增产新机制科技日报杭州2月9日电(洪恒飞陈鎏琰记者江耘)记者9日从中国水稻研究所获悉,该所张健研究员团队与胡培松院士团队经合作,首次揭示了植物胰岛素6磷酸海藻糖(Tre6P)调控水稻碳源……杀疯了!新款iPadPro正式发布,性能屏幕大升级点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事!4月21日凌晨1点,苹果举行了线上发布会,推出了一系列新产品与新服务,当中包括了全新的i……聊聊大屏幕手机最近,已经回归国内市场份额前三的荣耀品牌,将要公布新的大屏手机:荣耀X20max,尺寸达到惊人的7。2英寸。它的前辈,荣耀X10max,也不过是7。09英寸。什么概念呢?……新能源汽车涨价不改订单高涨,酝酿长期结构升级与技术变革【历史上每次涨价潮都酝酿了产品力的跨越和技术变革。】2017年初因首次补贴大幅度退坡导致第一次涨价,酝酿商用车到乘用车的结构切换,完成三元电池产业化应用,打造A00级爆款,20……特斯拉要求车主一年内不得转售车辆违者付20违约金?就在特斯拉悄悄涨价了一万元之后,迅速特斯拉又开始作妖了!3月16日,大V韩潮曝光了一份特斯拉不转卖承诺函,其中要求一次或多次累计下单购买多台特斯拉车辆的车主签署一份不转卖……
华为鸿蒙系统第二批公测名单曝光再加7款机型,荣耀迎来好消息比尔盖茨官宣离婚!由妻子提出!有3大看点Win11正式发布,Surface新品发布会全系列回顾高通设立1亿美元骁龙元宇宙基金用于投资XR开发者和企业中国未来十年,2个重要机会霍金说200年内人类将灭绝?那么人类对地球的迫害该谁来埋单?华为手机最新专利技术摄像头测肤质,提供护肤建议扫清资金障碍全球最大700M5G建站运动如何多快好省?防沉迷小助手用科技来改变孩子沉迷手机问题小米直播与薇娅强强联手,开创电商新世界手机卡有哪些既实惠又好用不坑的?南都曝光后小米应用商店下架相关无版号游戏,问题应用仍不少
教师节快乐初中作文500字ampampquot如何让自己变得强大ampampquot你君主论读书笔记成都武侯祠2021年参观量居全国第一什么是二层牛皮二层牛皮是真皮吗才会造句用才会造句大全那天阳光明媚4岁的孩子开始对我说谎了,我要揭穿她吗?梅花礼赞领导者胸怀宽广的七重境界春节回家自驾车,GPS的用处及注意事项四季之美

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁