分享一下 Laravel 的中时间的简单处理方式实例
涉及到的处理方式有
1、时间中的天级别的计算
2、日期的符合的筛查
3、时间的重新设定
4、时间格式的重新设定
/*
* 获取其他数据的一些设置
*/
private function getDateTime(){
// 当前时间
$time = now()->parse('+7 days');
// 结婚日期的计算规则 目前有18号 28号 22号分享,日期是28号。25号分享日期是下个月18号。这是要跟人准备一下的时间。
// 根据规则获取日期
$day = collect(['8', '18', '28'])->first(function($value) use($time){
return $value > $time->day;
});
// 组合最合适的时间
$time->day($day)->hour('19')->minute('00')->second('00');
// 需要一个这样的时间格式:2019-01-08 19:00
// 返回自己合适时间组合
return $time->format('Y-m-d H:i');
}
相信大家对时间的计算和处理已经比较熟悉了,因为你只要搜索carbon这个关键词,大多都是讲的这些,这里我也不重复。
这里我着重强调下,时间的重新设定和时间的格式。
我看文档都很少有提到这些。
本作品采用《CC 协议》,转载必须注明作者和本文链接
有个场景哈,在现在时刻(比如今天的16:10:20)某人账号被封1小时,1小时后解封,请问怎么弄?
@HI 在请求时读数据库的封禁记录,若超过时间则允许此请求,未超过时间则不允许此请求,响应已被禁止即可。
@HI
格式化旧时间
时间比较
返回值是布尔值
@houxin 谢谢,完美解决~
@Wi1dcard 谢谢,其实我只是想问用carbon怎样判断到了解封时间哈。后面的操作,我的想法是:用户登陆的时候我把他们登录的SESSION ID 存到了redis,后台封号的时候,给了他们一个socket弹出框提示他被封了,然后他点或不点击确定的时候,我都删掉了他们的session id,他们做任何页面操作都会自动掉线了,在他们登陆的时候,我会给他们提示还有多少分多少秒解封。这是我的大致思路哈,其实刚才只是想问carbon怎么判断到了过期时间哈,carbon 操作时间确实很方便的。
楼主可以多写一些carbon的高级用法噢
@HI 感觉使用 WebSocket 主动通知弹窗没必要。
@Wi1dcard 好的
@xuecong :smile:
$time = now()->parse('+7 days'); 应该换成 now()->addDays(7)
你这种写法太多字符串在里面。
@houxin
$oldTime = \Carbon\Carbon::parse('2018-12-25 16:10:20')->addHour()
这样写会不会更好
@di-gua 确实,这样的写法更专业的