laravel的carbon日期函数创建指定的now()日期以及遇到的一些坑

一、关于carbon()日期函数

      这个东西,我也是最近才接触,之前用的laravel 5.1,处理时间类还是使用最老套的方法,实在是烦不胜烦。初见carbon简直惊为天人,目前laravel 5.5默认的就是这个日期处理方法。很强大,很好用。

文档部分:
github地址:https://github.com/briannesbitt/carbon
国内文档:https://9iphp.com/web/laravel/php-datetime-package-carbon.html

二、carbon创建指定的日期为now()函数

需求:需要指定一个变量来操作这个变量下的日期。比如指定日期为5月14日,那么我们获取的“昨天”,或者“明天”,都是依据于5月14日来的。这种情况下,最佳的方式就是创建一个now()函数,为我们想要的日期。

 $knownDate = Carbon::create(2018, 5, 14,0,0,0); // 创建日期为2018年5月14日
Carbon::setTestNow($knownDate);  // 此时对应的now()函数是2018年5月14日

创建之后,我们根据当前方法中的now()函数获取到的都是5月14日。

三、遇到的一些坑

1、在我们创建好now()函数之后,不要随意的初始化carbon

此处的parse: parse方法解析任何顺序和类型的日期(结果为 Carbon 类型的日期时间对象)

//执行此操作之后,会默认还原now()函数为当前的时间。
 $time = Carbon::parse($time);

如果我们还想使用now()为5月14日,那只能换一种方式:

//相当于直接解析的时候,就用carbon类型的日期,这样就不用重新初始化了
  $time = Carbon::parse(now()->toDateString());

2、carbon类型日期函数

在我们常用的日期函数中,日期的类型多为字符串类型,我们可以用原生的php来进行一些操作。

//此处是carbon对应的日期类型,是对象格式的
object(Carbon\Carbon)#1212 (3) {
  ["date"]=>
  string(26) "2018-05-29 00:00:00.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(3) "PRC"
}

所以我们在操作日期的时候,一定要谨记时间日期的类型,免得出错。

3、更改日期提示为中文

正常Carbon格式的时间使用diffForHumans() 得到的是 1 day ago这种英文提示。如果想转换为中文的话,可以去

//去该目录下
app/Providers/AppServiceProvider.php 
//修改下面的值
静态方法 setLocale('en')改为setLocale('zh')  

框架的目的在于提升开发的一致性,简便性。laravel都做到了,很赞。

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值