zoukankan      html  css  js  c++  java
  • 日期时间处理包 Carbon

    日期时间处理包 Carbon
     
     

    安装

    由于 Laravel 框架已经默认安装了 Carbon 包,所以不用安装。如果其他项目需要使用 Carbon 可以执行如下命令安装。

    composer require nesbot/carbon
     

    使用

    直接通过 use 引用即可

    use CarbonCarbon;
     

    获取当前时间

    可以用 now() 方法获取当前的时间和日期。如果你想指定其他时区,也可以给 now() 方法传入一个参数指定。

    echo Carbon::now();    // 2018-10-10 15:57:47
    
    echo Carbon::now('America/Los_Angeles');    // 2018-10-10 01:00:30

    除了 now() 方法外,Carbon 还提供了 today()tomorrow()yesterday() 等静态方法,但是它们的时间都是 00:00:00 :

    echo Carbon::today();     // 2018-10-10 00:00:00
    
    echo Carbon::tomorrow();     // 2018-10-11 00:00:00
    
    echo Carbon::yesterday();    // 2018-10-09 00:00:00
     

    日期类型转换为字符串

    默认情况下,Carbon 的方法返回的是一个日期时间对象。如果需要的是字符串,可以使用如下方法转换:

    echo Carbon::now()->toDateString();         // 2019-01-22
    
    echo Carbon::now()->toDateTimeString();     // 2019-01-22 09:41:42
    
    echo Carbon::now()->toTimeString();         // 09:43:42
    
     

    两个日期时间的比较

    $first = Carbon::create(2019, 1, 20, 12, 30, 30);
    echo $first->toDateTimeString();                   // 2019-01-20 12:30:30
    
    $second = Carbon::create(2019, 1, 22, 9, 30, 30);
    echo $second->toDateTimeString();                  // 2019-01-22 09:30:30
    
    // 是否相等
    var_dump($first->equalTo($second));                // bool(false)
    var_dump($first->eq($second));                     // bool(false)
    var_dump($first == $second);                       // bool(false)
    
    // 是否不相等
    var_dump($first->notEqualTo($second));             // bool(true)
    var_dump($first->ne($second));                     // bool(true)
    var_dump($first != $second);                       // bool(true)
    
    // $first 是否大于 $second
    var_dump($first->gt($second));                     // bool(false)
    var_dump($first->greaterThan($second));            // bool(false)
    var_dump($first->isAfter($second));                // bool(false)
    var_dump($first > $second);                        // bool(false)
    
    // $first 是否大于或等于 $second
    var_dump($first->gte($second));                    // bool(false)
    var_dump($first->greaterThanOrEqualTo($second));   // bool(false)
    var_dump($first >= $second);                       // bool(false)
    
    // $first 是否小于 $second
    var_dump($first->lt($second));                     // bool(true)
    var_dump($first->lessThan($second));               // bool(true)
    var_dump($first->isBefore($second));               // bool(true)
    var_dump($first < $second);                        // bool(true)
    
    // $first 是否小于或等于 $second
    var_dump($first->lte($second));                    // bool(true)
    var_dump($first->lessThanOrEqualTo($second));      // bool(true)
    var_dump($first <= $second);                       // bool(true)
    

    以上这些比较方法使用了 PHP 原生的 $date1 == $date2;所以在 PHP 7.1 之前的版本,都是忽略了毫秒和微秒。

  • 相关阅读:
    常用排序算法(快速排序,冒泡排序,最大公约数,Fibonacci )【原创】
    Sql之left_join、right_join、inner_join的解释
    Effective C# 学习笔记(九) 在你的API中避免使用类型转换运算
    Effective C# 学习笔记(十) 用可选参数尽量减少方法重载
    NHibernate学习笔记(5)—正向与反向生成
    NHibernate学习(7)—对于实现机理的猜测
    Effective C# 学习笔记(一) 用属性替代公有变量
    Effective C# 学习笔记(十一)尽量缩减函数体的大小,提高运行效率
    我的学习之路
    NHibernate学习笔记(4)—使用存储过程
  • 原文地址:https://www.cnblogs.com/mouseleo/p/13879971.html
Copyright © 2011-2022 走看看