2018年1月19日是这个月的第三个星期五。
我要数字3表示这是第三个星期五。碳能做到这一点吗?
此外,我将用它来检查另一个日期是在另一个月的第三个星期五之前还是之后。例如,2018年2月17日是在2月的第三个星期五之前还是之后?
发布于 2018-01-19 22:22:17
Carbon是PHP DateTime之上的一个层,它非常强大,因为它支持许多这里概述的格式,特别是您正在寻找相对格式。
Third friday of february是一种有效的相对格式,因此,您可以这样做:
Carbon::parse('February 17th') > Carbon::parse('third friday of february');这将产生true,而:
Carbon::parse('February 15th') > Carbon::parse('third friday of february');将产生false。
您需要注意,在以这种方式构造时,格式化非常重要,例如,third friday in february是无效的。
我不认为DateTime类中有任何功能允许使用单个DateTime格式的第一部分,但是,您可以使用如下内容:
例如:
$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";发布于 2018-01-19 21:56:46
显然是可以的。
编辑:忽略这个
我不认为碳可以做你直接要求的事情,但是使用内置的获取器做一些计算,我相信你可以很容易地做到这一点。
http://carbon.nesbot.com/docs/#api-getters
从解析日期开始:
$dt = Carbon::parse('2018-19-1 23:26:11.123789');然后使用weekOfMonth,dayOfMonth,dayOfWeek等。
https://stackoverflow.com/questions/48350030
复制相似问题