今天的日期是2014年1月27日,所以我使用以下函数获得了日期名称:
$t=date('d-m-Y');
$day = strtolower(date("D",strtotime($t)));因此,现在日期名称是mon。
如何找出这个星期一是当月的第四个星期一?换句话说,我试图找到某一天的第一天、第二天、第三天、第四天。星期一)一个月?
发布于 2014-01-27 18:36:37
数学部分的功劳归Jon (上图)
结合您的代码,可以按如下方式实现完整的解决方案
$t=date('d-m-Y');
$dayName = strtolower(date("D",strtotime($t)));
$dayNum = strtolower(date("d",strtotime($t)));
echo floor(($dayNum - 1) / 7) + 1或者作为具有可选日期的函数
PHP小提琴here
这只会返回您所请求的数字。
function dayNumber($date=''){
if($date==''){
$t=date('d-m-Y');
} else {
$t=date('d-m-Y',strtotime($date));
}
$dayName = strtolower(date("D",strtotime($t)));
$dayNum = strtolower(date("d",strtotime($t)));
$return = floor(($dayNum - 1) / 7) + 1;
return $return;
}
echo dayNumber('2014-01-27');发布于 2014-01-27 18:36:07
$date = mktime(0, 0, 0, 1, 27, 2014);
$dayNumber = date("d", $date);
$dayOfWeek = date("l", $date);
$dayPosition = (floor(($dayNumber - 1) / 7) + 1);
switch ($dayPosition) {
case 1:
$suffix = 'st';
break;
case 2:
$suffix = 'nd';
break;
case 3:
$suffix = 'rd';
break;
default:
$suffix = 'th';
}
echo "Today is the " . $dayPosition . $suffix . " " . $dayOfWeek . " of the month.";
// Will echo: Today is the 4th Monday of the month.感谢@Jon的数学。
发布于 2020-12-14 22:02:31
对现有答案进行了一些改进。
现在是星期几,简单地说:
echo date("N", time());给定日期的星期几:
//$date in d-m-Y, modify for your needs
function dayNumber($date = null)
{
$date = $date ?? date('d-m-Y');
$date = DateTime::createFromFormat('d-m-Y', $date);
return $date->format("N");
}
echo dayNumber('24-12-2020');我使用null合并运算符(PHP7.0及以上)和DateTime类和函数(PHP5.3.0及以上)。
我会避免使用strtotime(),因为潜在的时区问题。
https://stackoverflow.com/questions/21377798
复制相似问题