首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP每月碳排放第9天

PHP每月碳排放第9天
EN

Stack Overflow用户
提问于 2018-01-19 21:49:32
回答 2查看 6.6K关注 0票数 0

2018年1月19日是这个月的第三个星期五。

我要数字3表示这是第三个星期五。碳能做到这一点吗?

此外,我将用它来检查另一个日期是在另一个月的第三个星期五之前还是之后。例如,2018年2月17日是在2月的第三个星期五之前还是之后?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-19 22:22:17

Carbon是PHP DateTime之上的一个层,它非常强大,因为它支持许多这里概述的格式,特别是您正在寻找相对格式

Third friday of february是一种有效的相对格式,因此,您可以这样做:

代码语言:javascript
复制
Carbon::parse('February 17th') > Carbon::parse('third friday of february');

这将产生true,而:

代码语言:javascript
复制
Carbon::parse('February 15th') > Carbon::parse('third friday of february');

将产生false

您需要注意,在以这种方式构造时,格式化非常重要,例如,third friday in february是无效的。

我不认为DateTime类中有任何功能允许使用单个DateTime格式的第一部分,但是,您可以使用如下内容:

  1. 确定规定日期的日期
  2. 找到那个月的第一天
  3. 比较你的日期和第一天的(天数/ 7)

例如:

代码语言:javascript
复制
$date = Carbon\Carbon::parse('January 18 2018');

$firstDay = Carbon\Carbon::parse("first {$date->format('l')} of {$date->format('F')}");
$nth = $firstDay->diffInDays($date) / 7 + 1;

echo "{$date->format('Y-m-d')} is the #{$nth} {$date->format('l')} in this month";
票数 1
EN

Stack Overflow用户

发布于 2018-01-19 21:56:46

显然是可以的。

编辑:忽略这个

我不认为碳可以做你直接要求的事情,但是使用内置的获取器做一些计算,我相信你可以很容易地做到这一点。

http://carbon.nesbot.com/docs/#api-getters

从解析日期开始:

代码语言:javascript
复制
$dt = Carbon::parse('2018-19-1 23:26:11.123789');

然后使用weekOfMonthdayOfMonthdayOfWeek等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48350030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档