Carbon常用方法_carbon 获取某个时间的第二天-程序员宅基地

技术标签: laravel  php  

use Carbon\Carbon; // Carbon 类在 Carbon 命名空间中声明

// 获取当前时间
echo Carbon::now(); // 2017-04-07 16:32:28

// 今天
echo Carbon::today(); // 2017-04-07 00:00:00
// 明天
echo Carbon::tomorrow(); // 2017-04-08 00:00:00
// 昨天
echo Carbon::yesterday(); // 2017-04-06 00:00:00

// 获取前一天的开始时间
echo Carbon::now()->yesterday()->startOfDay(); // 2017-04-06 00:00:00
// 获取前一天的结束时间
echo Carbon::now()->yesterday()->endOfDay(); // 2017-04-06 23:59:59

//上一周开始时间 (星期一)
echo Carbon::now()->previous()->startOfWeek(); // 2017-03-27 00:00:00
// 这周周一
echo Carbon::now()->startOfWeek(); // 2017-04-03 00:00:00
//上一周结束时间 (星期天)
echo Carbon::now()->previous()->endOfWeek(); // 2017-04-02 23:59:59
// 这周周天
echo Carbon::now()->endOfWeek(); // 2017-04-09 23:59:59

//获取上一月的开始时间
echo Carbon::now()->subMonth(1)->startOfMonth(); // 2017-03-01 00:00:00
// 获取上一月的结束时间
echo Carbon::now()->subMonth(1)->endOfMonth(); // 2017-03-31 23:59:59
// 这个月的第一天开始时间
echo Carbon::now()->startOfMonth(); // 2017-04-01 00:00:00
// 这个月的最后一天结束时间
echo Carbon::now()->endOfMonth(); // 2017-04-30 23:59:59

// 获取上一年的开始时间
echo Carbon::now()->subYear(1)->startOfYear(); // 2016-01-01 00:00:00
// 今年开始时间
echo Carbon::now()->startOfYear(); // 2017-01-01 00:00:00
echo Carbon::now()->lastOfYear()->startOfYear(); // 2017-01-01 00:00:00
// 获取上一年的结束时间
echo Carbon::now()->subYear(1)->endOfYear(); // 2016-12-31 23:59:59
// 今年结束时间
echo Carbon::now()->endOfYear(); // 2017-12-31 23:59:59
echo Carbon::now()->lastOfYear()->endOfYear(); // 2017-12-31 23:59:59

// 获取当前时间的固定格式
echo Carbon::now()->format('Y-m-d'); // 2017-04-07
// 几号
echo Carbon::now()->day; // 7
// 几月
echo Carbon::now()->month; // 4
// 年
echo Carbon::now()->year; // 2017
// 小时
echo Carbon::now()->hour;
// 分钟
echo Carbon::now()->minute;
// 上周的今天是星期几
echo Carbon::now()->dayOfWeek; // 5
// 今天是365天中的第几天
echo Carbon::now()->dayOfYear; // 96
// 这个月中的第几周
echo Carbon::now()->weekOfMonth; // 1
// 年中的第几周
echo Carbon::now()->weekOfYear; // 14
// 季度
echo Carbon::now()->quarter; // 2
// 几岁
echo Carbon::createFromDate(1991, 5, 21)->age; // 25
// 这个月有几天
echo Carbon::now()->daysInMonth; // 30

var_dump(isset(Carbon::now()->hour)); // bool(true)
var_dump(empty(Carbon::now()->year)); // bool(false)

echo Carbon::now()->year(2017)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString(); // 2017-05-21 22:32:05
echo Carbon::now()->setDate(2017, 5, 21)->setTime(22, 32, 5)->toDateTimeString(); // 2017-05-21 22:32:05
echo Carbon::now()->setDateTime(2017, 5, 21, 22, 32, 5)->toDateTimeString(); // 2017-05-21 22:32:05

// 日期解析
echo new Carbon('now');
echo Carbon::parse('now'); // 2017-04-07 17:54:35
echo Carbon::parse('today'); // 2017-04-07 00:00:00
echo Carbon::parse('yesterday'); // 2017-04-06 00:00:00
echo Carbon::parse('2 days ago'); // 2017-04-05 17:56:28
echo Carbon::parse('+3 days'); // 2017-04-10 17:57:14
echo Carbon::parse('-3 days'); // 2017-04-04 17:57:37
echo Carbon::parse('+2 weeks'); // 2017-04-21 17:58:05
echo Carbon::parse('+4 months'); // 2017-08-07 17:58:32
echo Carbon::parse('-1 year'); // 2016-04-07 17:58:56
echo Carbon::parse('next wednesday'); // 2017-04-12 00:00:00
echo Carbon::parse('last friday'); // 2017-03-31 00:00:00

// 将carbon对象转换成string类型
echo Carbon::createFromTimestamp(-1)->toDateTimeString(); // 1970-01-01 07:59:59
echo Carbon::now()->toDateString(); // 2017-04-07
echo Carbon::now()->toDateTimeString(); // 2017-04-07 16:53:28
echo Carbon::now()->toFormattedDateString(); // Apr 7, 2017
echo Carbon::now()->toTimeString(); // 18:04:00
echo Carbon::now()->toDayDateTimeString(); // Fri, Apr 7, 2017 6:04 PM

// 获取当前时间的时间戳
echo Carbon::now()->timestamp; // 1491554091

echo Carbon::now()->timestamp(1491554091)->toDateTimeString(); // 2017-04-07 16:34:51

// 设置当前地区的时区
echo Carbon::now()->timezone('Asia/Shanghai'); // 2017-04-07 16:35:35

// 直接使用字符串
echo Carbon::now('Europe/London'); // 2017-04-07 09:36:41

// createFromDate()将默认的时间到现在。 createFromTime()将日期默认为今天。
echo Carbon::createFromDate(2018, 1, 1, 'Europe/London'); // 2018-01-01 16:39:40
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22')->toDateTimeString(); // 1975-05-21 22:00:00
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22'); // 1975-05-21 22:00:00

// create()将默认任何null参数到当前相应的值
echo Carbon::create(2000, 1, 1, 0, 0, 0); // 2000-01-01 00:00:00

// 日期比较
echo Carbon::now()->tzName; // PRC
$first = Carbon::create(2017, 4, 10, 11, 26, 30);
$second = Carbon::create(2017, 4, 10, 11, 26, 30, 'Asia/Shanghai');

echo $first->toDateTimeString(); // 2017-04-10 11:26:30
echo $first->tzName; // PRC
echo $second->toDateTimeString(); // 2017-04-10 11:26:30
echo $second->tzName; // Asia/Shanghai

// 判断两个日期是否相等
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(2017, 1, 1, 0, 0, 0);
$second->setDateTime(2017, 1, 1, 0, 0, 0);

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)

// 要判断一个日期是否介于两个日期之间,可以使用 between() 方法,第三个可选参数指定比较是否可以相等,默认为 true
$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)

$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
// 返回最小日期
echo $dt1->min($dt2);                              // 2012-01-01 00:00:00

$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
// 返回最大日期
echo $dt1->max($dt2);                              // 2014-01-30 00:00:00

// now is the default param
$dt1 = Carbon::create(2000, 1, 1, 0, 0, 0);
echo $dt1->max();                                  // 2017-04-10 11:51:23

$dt = Carbon::now();

// 确定实例是一个工作日
$dt->isWeekday();
// 确定实例是周末的一天
$dt->isWeekend();
$dt->isYesterday();
$dt->isToday();
$dt->isTomorrow();
// 是否比现在的时间大
$dt->isFuture();
// 是否比现在的时间小
$dt->isPast();
// 确定实例是闰年
$dt->isLeapYear();
// 检查传入日期是同一天的当前实例
$dt->isSameDay(Carbon::now());
$born = Carbon::createFromDate(1987, 4, 23);
$noCake = Carbon::createFromDate(2014, 9, 26);
$yesCake = Carbon::createFromDate(2014, 4, 23);
$overTheHill = Carbon::now()->subYears(50);
// 检查它的生日。比较两个日期的日期
var_dump($born->isBirthday($noCake));              // bool(false)
var_dump($born->isBirthday($yesCake));             // bool(true)
var_dump($overTheHill->isBirthday());              // bool(true) -> default compare it to today!

// 日期操作
// add(增加), sub(减去)
$dt = Carbon::create(2017, 4, 10, 0);

echo $dt->toDateTimeString();            // 2017-04-10 00:00:00

echo $dt->addYears(5);                   // 2022-04-10 00:00:00
echo $dt->addYear();                     // 2023-04-10 00:00:00
echo $dt->subYear();                     // 2022-04-10 00:00:00
echo $dt->subYears(5);                   // 2017-04-10 00:00:00

echo $dt->addMonths(6);                  // 2017-10-10 00:00:00
echo $dt->addMonth();                    // 2017-11-10 00:00:00 equivalent of $dt->month($dt->month + 1); so it wraps
echo $dt->subMonth();                    // 2017-10-10 00:00:00
echo $dt->subMonths(6);                  // 2017-04-10 00:00:00

echo $dt->addDays(5);                    // 2017-04-15 00:00:00
echo $dt->addDay();                      // 2017-04-16 00:00:00
echo $dt->subDay();                      // 2017-04-15 00:00:00
echo $dt->subDays(5);                    // 2017-04-10 00:00:00

echo $dt->addWeekdays(4);                // 2017-04-14 00:00:00
echo $dt->addWeekday();                  // 2017-04-17 00:00:00
echo $dt->subWeekday();                  // 2017-04-14 00:00:00
echo $dt->subWeekdays(4);                // 2017-04-10 00:00:00

echo $dt->addWeeks(1);                   // 2017-04-17 00:00:00
echo $dt->addWeek();                     // 2017-04-24 00:00:00
echo $dt->subWeek();                     // 2017-04-17 00:00:00
echo $dt->subWeeks(1);                   // 2017-04-10 00:00:00

echo $dt->addHours(24);                  // 2017-04-11 00:00:00
echo $dt->addHour();                     // 2017-04-11 01:00:00
echo $dt->subHour();                     // 2017-04-11 00:00:00
echo $dt->subHours(24);                  // 2017-04-10 00:00:00

echo $dt->addMinutes(61);                // 2017-04-10 01:01:00
echo $dt->addMinute();                   // 2017-04-10 01:02:00
echo $dt->subMinute();                   // 2017-04-10 01:01:00
echo $dt->subMinutes(61);                // 2017-04-10 00:00:00

echo $dt->addSeconds(61);                // 2017-04-10 00:01:01
echo $dt->addSecond();                   // 2017-04-10 00:01:02
echo $dt->subSecond();                   // 2017-04-10 00:01:01
echo $dt->subSeconds(61);                // 2017-04-10 00:00:00

// modify 方法,参数格式为 + 或 - 跟上值及单位
echo Carbon::now()->modify('+15 days');    // 2017-04-25 12:26:02
echo Carbon::now()->modify('-2 days');     // 2017-04-08 12:26:02
echo Carbon::now()->modify('-2 day');      // 2017-04-08 12:28:31
echo Carbon::now()->modify('-2 weekday');  // 2017-04-06 00:00:00
echo Carbon::now()->modify('-2 month');    // 2017-02-10 12:29:36
echo Carbon::now()->modify('-2 year');     // 2015-04-10 12:31:13
echo Carbon::now()->modify('-2 week');     // 2017-03-27 12:31:13
echo Carbon::now()->modify('-2 hour');     // 2017-04-10 10:31:13
echo Carbon::now()->modify('-2 minute');   // 2017-04-10 12:29:13
echo Carbon::now()->modify('-2 second');   // 2017-04-10 12:31:11

echo Carbon::now()->subDays(5)->diffForHumans();               // 5天前

echo Carbon::now()->diffForHumans(Carbon::now()->subYear());   // 1年后

$dt = Carbon::createFromDate(2017, 4, 1);

echo $dt->diffForHumans($dt->copy()->addMonth());              // 1月前
echo $dt->diffForHumans($dt->copy()->subMonth());              // 1月后

echo Carbon::now()->addSeconds(5)->diffForHumans();            // 距现在5秒

echo Carbon::now()->subDays(24)->diffForHumans();              // 3周前
echo Carbon::now()->subDays(24)->diffForHumans(null, true);    // 3周
   
$dt = Carbon::now();
// 年的差异
echo $dt->diffInYears($dt->copy()->addYear(2));  // 2
echo $dt->diffInMonths();  // 0
echo $dt->diffInMinutes();  // 0

//指定返回日期的格式
$now = Carbon::now();// 2020-03-14 15:18:34
$firstDay = $now->firstOfMonth()->format('Ymd');// 20200301
$lastDay = $now->lastOfMonth()->format('Ymd');// 20200331

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41100055/article/details/129195433

智能推荐

ThinkPHP去除url中的index.php,绝对管用!-程序员宅基地

文章浏览阅读1.6k次。例如你的原路径是 http://localhost/test/index.php/index/add那么现在的地址是 http://localhost/test/index/add如何去掉index.php呢?1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置#LoadModule rewrite_module modu

Qt核心机制与原理_qt原理-程序员宅基地

文章浏览阅读3.8k次,点赞5次,收藏39次。★了解Qt和C++的关系★掌握Qt的信号/槽机制的原理和使用方法★了解Qt的元对象系统★掌握Qt的架构★理解Qt的事件模型,掌握其使用的时机信号与槽、元对象系统、事件模型是Qt机制的核心,如果您想要掌握Qt编程,就需要对它们有比较深入的了解。本章重点介绍了信号与槽的基本概念和用法、元对象系统、Qt的事件模型,以及它们在实际使用过程中应注意的一些问题。Qt对标准C++的扩展标准C++对象模型为面向对象编程提供了有效的实时支持,但是它的静态特性在一些领域中表现的不够灵活。事实上,GUI应用程序_qt原理

CC2640R2F BLE5.0 TI-RTOS概述_ti rtos 总中断-程序员宅基地

文章浏览阅读8.2k次,点赞3次,收藏25次。TI-RTOS概述TI-RTOS是CC2640R2F设备上蓝牙低能耗项目的运行环境。TI-RTOS内核是传统SYS/BIOS内核的定制版本,可作为具有驱动程序,同步和调度工具的实时抢占式多线程操作系统。线程模块TI-RTOS内核管理线程执行的四个不同的任务级别,如图21所示。线程模块列表如下图所示,按照优先级降序排列。硬件中断软件中断任务后台空闲功能的空闲任务_ti rtos 总中断

按需引入element-ui找不到.babelrc_项目里面没找的.babelrc文件怎么按需引入elment-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏4次。在开发过程中我们可以通过按需引入的方式引入所需要的组件,以达到减小项目体积的目的:步骤一:使用babel-plugin-component插件。运行命令行npm install babel-plugin-component -D2、修改babel.config.js文件module.exports = { presets: ['@vue/cli-plugin-babel/preset'], plugins: [ [ 'component',_项目里面没找的.babelrc文件怎么按需引入elment

Android VideoView或MediaPlayer 播放视频控制静音和正常音量模式切换_android standardgsyvideoplayer 设置静音播放-程序员宅基地

文章浏览阅读7.9k次,点赞7次,收藏11次。再做闪屏页广告的时候,如果是视频媒体,通常用户都不想听广告到底在播什么。如果是 MediaPlayer 的话设置静音模式mediaPlayer.setVolume(0f, 0f);设置有声模式mediaPlayer.setVolume(1, 1);假如是VideoView呢,MediaPlayer对象是私有成员,没办法直接获取到,咋办videoView.setOn..._android standardgsyvideoplayer 设置静音播放

JAVA8按一属性分组统计数量,JDK8:Lambda根据 单个字段、多个字段,分组求和-程序员宅基地

文章浏览阅读8.2k次,点赞2次,收藏3次。使用lambda表达式分别 根据 单个字段、多个字段,分组求和示意图:1、根据 单个字段,分组求和:根据2019这个字段,计算一个list集合里,同属于2019的某个字段累加和2、根据 多个字段,分组求和:(1)先根据2019这个字段,再根据1这个字段,计算一个list集合里,同属于2019和1的某个字段累加和;(2)先根据2019这个字段,再根据2这个字段,计算一个list集合里,同属于2019..._jdk8分组求和

随便推点

PyTorch——自注意力(self-attention)机制实现(代码详解)_自注意力机制代码-程序员宅基地

文章浏览阅读8w次,点赞111次,收藏691次。参考链接https://www.bilibili.com/video/BV1JE411g7XF?p=54https://arxiv.org/abs/1706.03762https://blog.csdn.net/qq_36653505/article/details/83375160简述自注意力机制(self-attention)self-attention可以视为一个特征提取层,给定输入特征a1,a2,⋅⋅⋅ana^{1},a^{2},\cdot \cdot \cdot a^{n}a1,a2_自注意力机制代码

在Vue中应用cornerstone并且实时更新缩放比例等数据_浏览器缩放倍数变化时 更新数据 vue-程序员宅基地

文章浏览阅读1.6k次。在Vue中应用cornerstone并且跟随dicom实时更新缩放比例等数据最近需要在cornerstone的显示界面中显示一些数据,比如缩放比例以及渲染时间等,但是这些是需要根据鼠标事件进行实时更新的,想想肯定是有这个接口的,于是便试了一下。1、获取到当前视窗的对象获取到视窗这个对象因为它里面肯定会有许多属性可以直接被使用,刚好我们的缩放比例就是里面的scale,还有一些属性可以直接取用。..._浏览器缩放倍数变化时 更新数据 vue

C语言中常用的函数_c语言常用函数-程序员宅基地

文章浏览阅读3.1w次,点赞135次,收藏1k次。C语言中常用的函数1、putchar()函数2、getchar()函数3、pow( a , b )函数4、sqrt( a )函数5、fabs(a)函数6、puts(字符数组)函数——输出字符串的函数7、gets(字符数组)——输入字符串的函数8、strcat(a , b)函数——字符串连接函数9、strcpy函数——字符串复制函数10、strncpy函数——字符串复制函数11、strcmp函数——字符串比较函数12、strlen函数——测量字符串长度的函数13、strlwr函数——转换为小写的函数14、_c语言常用函数

webpack打包时如何修改文件名_webpack打包文件名称设置-程序员宅基地

文章浏览阅读5k次。webpack打包时如何修改文件名在使用webpack进行项目打包的时候,我们可通过以下方式对不同类型的资源,进行文件名或文件路径的修改_webpack打包文件名称设置

android mvvm databinding在dialog中的使用_android dialog中使用datebinding-程序员宅基地

文章浏览阅读5.7k次。自定义dialog/** * Created by zhaoxiaoyu on 2019/10/31 0031. */public class CardDialog extends Dialog{ private DialogCardBinding cardBinding; private CardViewModel cardViewModel; private int num; public CardDialog(@NonNull Context context_android dialog中使用datebinding

零基础搭建服务器(DELL PowerEdge R740)_r740安装server2016-程序员宅基地

文章浏览阅读6.3w次,点赞18次,收藏78次。零基础搭建服务器(型号:DELL PowerEdge R740)step1:开机按Ctrl+R删除默认的磁盘组step2:创建虚拟磁盘step3:选择RAID5,分三个硬盘(raid-5最少需要三个),VD-size我给100G用来装系统注意有时候是现实TB如下图step4:再分个盘,用来存储数据把身下的几T都给它,直接OK就行。step5:创建热盘,选中OK,按ESC回车保存退..._r740安装server2016