我如何确定php中给定日期的第n个工作日

时间:2009-06-12 10:25:48

标签: php datetime date

我正在制作日历脚本,我需要重复日历事件 “每个月的每个第一个星期二重复”

在上面的例子中。你怎么得到“第一”?

例如,今天是2009年6月12日这意味着它是“六月的第二个星期五”我如何得到“第二个”?

提前致谢

3 个答案:

答案 0 :(得分:16)

除以7并向上舍入:

ceil(date('j') / 7);

答案 1 :(得分:3)

这有效:

<?php

$date = date('Y-m-d', mktime(0, 0, 0, date('m'), 1, date('y')));

echo date('Y-m-d', strtotime($date.'next tuesday'));

?>

第一行创建的日期是本月的第一天。 第二行从$ date开始下一个星期二。

您可以执行更多操作,请参阅datemktime以及strtotime

答案 2 :(得分:0)

Map<Integer, Integer> map = new HashMap<>();
public int newNumber(int i) {
    Integer result = map.computeIfPresent(i, (k, v) -> v + 1);
    if (result == null) {
        map.put(i, 1);
        return -1;
    }
    return result;
}