分享一下 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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

有个场景哈,在现在时刻(比如今天的16:10:20)某人账号被封1小时,1小时后解封,请问怎么弄?

5年前 评论

@HI 在请求时读数据库的封禁记录,若超过时间则允许此请求,未超过时间则不允许此请求,响应已被禁止即可。

5年前 评论

@HI
格式化旧时间

$oldTime = \Carbon\Carbon::parse('2018-12-25 16:10:20')->modify('+1 hour');

时间比较

now()->gt($oldTime)

返回值是布尔值

5年前 评论

@Wi1dcard 谢谢,其实我只是想问用carbon怎样判断到了解封时间哈。后面的操作,我的想法是:用户登陆的时候我把他们登录的SESSION ID 存到了redis,后台封号的时候,给了他们一个socket弹出框提示他被封了,然后他点或不点击确定的时候,我都删掉了他们的session id,他们做任何页面操作都会自动掉线了,在他们登陆的时候,我会给他们提示还有多少分多少秒解封。这是我的大致思路哈,其实刚才只是想问carbon怎么判断到了过期时间哈,carbon 操作时间确实很方便的。

5年前 评论

楼主可以多写一些carbon的高级用法噢

5年前 评论

@HI 感觉使用 WebSocket 主动通知弹窗没必要。

5年前 评论

$time = now()->parse('+7 days'); 应该换成 now()->addDays(7)
你这种写法太多字符串在里面。

5年前 评论

@houxin
$oldTime = \Carbon\Carbon::parse('2018-12-25 16:10:20')->addHour()
这样写会不会更好

5年前 评论

@di-gua 确实,这样的写法更专业的

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!