首页 > 其他分享 >Laravel日期处理

Laravel日期处理

时间:2023-04-08 18:11:35浏览次数:50  
标签:Laravel 10 00 处理 echo 日期 Carbon 2016 2012

1. 常用:

echo Carbon::now();                             // 2016-10-14 15:18:34
echo Carbon::today();                           // 2016-10-14 00:00:00
echo  Carbon::tomorrow('Europe/London');        // 2016-10-14 00:00:00
echo Carbon::yesterday();                       // 2016-10-14 00:00:00

$dt = Carbon::create(2012, 1, 31, 12, 0, 0);
echo $dt->startOfDay(); // 2012-01-31 00:00:00
echo $dt->endOfDay(); // 2012-01-31 23:59:59
echo $dt->startOfMonth(); // 2012-01-01 00:00:00
echo $dt->endOfMonth(); // 2012-01-31 23:59:59
echo $dt->startOfYear(); // 2012-01-01 00:00:00
echo $dt->endOfYear(); // 2012-12-31 23:59:59
echo $dt->startOfDecade(); // 2010-01-01 00:00:00
echo $dt->endOfDecade(); // 2019-12-31 23:59:59
echo $dt->startOfCentury(); // 2000-01-01 00:00:00
echo $dt->endOfCentury(); // 2099-12-31 23:59:59
echo $dt->startOfWeek(); // 2012-01-30 00:00:00
echo $dt->endOfWeek(); // 2012-02-05 23:59:59

2. 转为字符串

echo Carbon::now()->toDateString();     //2016-10-14
echo Carbon::now()->toDateTimeString(); //2016-10-14 20:22:50
echo Carbon::now()->format('Y-m-t'); //2016-10-31

3.解析

echo Carbon::parse('2016-10-15')->toDateTimeString();          //2016-10-15 00:00:00
echo Carbon::parse('2016-10-15')->toDateTimeString();          //2016-10-15 00:00:00
echo Carbon::parse('2016-10-15 00:10:25')->toDateTimeString(); //2016-10-15 00:10:25
 
echo Carbon::parse('today')->toDateTimeString();               //2016-10-15 00:00:00
echo Carbon::parse('yesterday')->toDateTimeString();           //2016-10-14 00:00:00
echo Carbon::parse('tomorrow')->toDateTimeString();            //2016-10-16 00:00:00
echo Carbon::parse('2 days ago')->toDateTimeString();          //2016-10-13 20:49:53
echo Carbon::parse('+3 days')->toDateTimeString();             //2016-10-18 20:49:53
echo Carbon::parse('+2 weeks')->toDateTimeString();            //2016-10-29 20:49:53
echo Carbon::parse('+4 months')->toDateTimeString();           //2017-02-15 20:49:53
echo Carbon::parse('-1 year')->toDateTimeString();             //2015-10-15 20:49:53
echo Carbon::parse('next wednesday')->toDateTimeString();      //2016-10-19 00:00:00
echo Carbon::parse('last friday')->toDateTimeString();         //2016-10-14 00:00:00

4.修改

echo Carbon::now()->addDays(25);                 //2016-11-09 14:00:01
echo Carbon::now()->addWeeks(3);                 //2016-11-05 14:00:01
echo Carbon::now()->addHours(25);                //2016-10-16 15:00:01
echo Carbon::now()->subHours(2);                 //2016-10-15 12:00:01
echo Carbon::now()->addHours(2)->addMinutes(12); //2016-10-15 16:12:01
echo Carbon::now()->modify('+15 days');          //2016-10-30 14:00:01
echo Carbon::now()->modify('-2 days');           //2016-10-13 14:00:01

5.比较

min – 返回最小日期。
max – 返回最大日期。
eq  – 判断两个日期是否相等。
gt  – 判断第一个日期是否比第二个日期大。
lt  – 判断第一个日期是否比第二个日期小。
gte – 判断第一个日期是否大于等于第二个日期。
lte – 判断第一个日期是否小于等于第二个日期。
echo Carbon::now()->tzName;                        // America/Toronto
$first = Carbon::create(2012, 9, 5, 23, 26, 11);
$second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver');
 
echo $first->toDateTimeString();                   // 2012-09-05 23:26:11
echo $first->tzName;                               // America/Toronto
echo $second->toDateTimeString();                  // 2012-09-05 20:26:11
echo $second->tzName;                              // America/Vancouver
 
var_dump($first->eq($second));                     // bool(true)
var_dump($first->ne($second));                     // bool(false)
var_dump($first->gt($second));                     // bool(false)
var_dump($first->gte($second));                    // bool(true)
var_dump($first->lt($second));                     // bool(false)
var_dump($first->lte($second));                    // bool(true)
 
$first->setDateTime(2012, 1, 1, 0, 0, 0);
$second->setDateTime(2012, 1, 1, 0, 0, 0);         // Remember tz is 'America/Vancouver'
 
var_dump($first->eq($second));                     // bool(false)
var_dump($first->ne($second));                     // bool(true)
var_dump($first->gt($second));                     // bool(false)
var_dump($first->gte($second));                    // bool(false)
var_dump($first->lt($second));                     // bool(true)
var_dump($first->lte($second));                    // bool(true)
判断一个日期是否介于两个日期之间,可以使用 between() 方法
$first = Carbon::create(2012, 9, 5, 1);
$second = Carbon::create(2012, 9, 5, 5);
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second));       // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second));       // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false));// bool(false)

6.返回两时间之间的天数

echo Carbon::parse('2023-04-05')->diffInDays('2023-09-02');//150

7.返回两时间之间的日期

$period = \Carbon\CarbonPeriod::create('2023-04-05', '2023-09-02');
$data = [];
foreach ($period as $key => $date) {
    $data[] = $date->format('Y-m-d');
}
var_dump($data);//[2023-04-05,2023-04-06,2023-04-07,2023-04-08...]

参考:https://www.jianshu.com/p/9d2b576acded

标签:Laravel,10,00,处理,echo,日期,Carbon,2016,2012
From: https://www.cnblogs.com/chengwens/p/17298941.html

相关文章

  • 基于matlab模拟雷达信号检测中的恒虚警处理方法(慢门限和快门限)
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • MQ——消息积压如何处理
    一、消息积压的原因1、producer生产消息突然增多比如大促期间,抢购,秒杀业务。2、consumer消费性能突然下降比如消费失败时重试,程序死锁,io阻塞。3、消费系统本身出现瓶颈这种情况很少,对于绝大多数使用消息队列的业务来说,消息队列本身的处理能力要远大于业务系统的处理能力。主......
  • python之json格式化与紧凑处理
    格式化在工作中json是我们常用的数据格式,因为格式化与紧凑存储所占的内存是不同的,格式化存储接近大一倍空间。所以有时候需要紧凑存储(一行存储),但是查看不太方便。场景:记事本打开json的速度最快,但是没有格式化功能。notepad++可以格式化但是需要联网安装插件,内网环境不能下载......
  • 冷知识:预处理字符串操作符
    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/Xr2pFCJ4j0DZYo2PO6-KQg当年学习C语言的第一门课就提到过标记(Token)的概念,不过,相信在多年之后你再次听到这个术语时会一脸懵逼,比如我。因此特地翻了翻资料,整理下来这些笔记......
  • vs调试“字符串中字符无效”处理办法
    在使用VS2019调试代码时,查看变量值时,utf8格式字符串不能正常显示,需要在变量名后手动添加",s8",就能正常查看字符啦。总结如下:,s8:将字符串转成unicode展示,数字将变量拆分为数组显示,数字是要显示多少位,此法对constchar*这类原始字符串非常有用,x16进制查看,hr查看Win......
  • Python 日期和时间用法超强总结
    Python中处理日期和时间的模块Python提供了time和datetime模块,可以帮助我们轻松获取和修改日期和时间,下面让我们来逐一了解一下。time模块该模块包括使用时间执行各种操作所需的所有与时间相关的功能,它还允许我们访问多种用途所需的时钟类型。内置函数:请看下表,它描述了时......
  • PG-表膨胀及处理
    背景最近处理了几起线上实例表膨胀的问题。表膨胀是指表的数据和索引所占文件系统的空间,在有效数据量并未发生大的变化的情况下,不断增大。PG使用过程中需要特别关注这方面,我们来给大家解析一下表膨胀的原因。表膨胀的直接触发因素是表上的大量更新,如全表的update操作、大量的ins......
  • Mysql_无法删除数据库的处理方法
    问题现象使用Navicat删除数据库一直转圈定位问题执行 SHOWPROCESSLIST;  提示元数据无法被锁定执行  select*frominformation_schema.innodb_trx\G; 发现有进程一直处于运行中解决方法kill进程id 重新查看没有 Waiting进程,showdatabases; 发现库已被......
  • 云计算技术:为什么越来越多企业选择云端存储和处理
    随着互联网的发展,云计算技术已经成为了企业存储和处理数据的首选方式。越来越多的企业选择将数据存储在云端,而不是传统的本地存储方式。那么,为什么云计算技术如此受欢迎呢?首先,云计算技术可以提供更高效的数据存储和处理方式。云计算技术可以通过虚拟化技术将多个物理服务器组合成......
  • 面试题百日百刷-HBase HRegionServer宕机如何处理
    锁屏面试题百日百刷,每个工作日坚持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还包含特色的解锁屏幕复习面试题、每日编程题目邮件推送等功能。让你在面试中先人一步!接下来的是今日的面试题: 1.HBase......