php 将工作日转换为日期

标签 php date weekday

function dayDate($day) {
    $dayArr = array(
            0 => 'MONDAY',
            1 => 'TUESDAY',
            2 => 'WEDNESDAY',
            3 => 'THURSDAY',
            4 => 'FRIDAY',
            5 => 'SATURDAY',
            6 => 'SUNDAY'
        );

        $sunday = mktime(0, 0, 0, date('m'), date('d')+(1-date('w')), date('Y'));

        $n  = array_search("$day",$dayArr);
        $date   = date('m-d-Y', $sunday+$n*60*60*24);

    return $date;
}

我正在使用上述函数将工作日(例如星期一)转换为当前星期几,我在循环中使用此函数并传入 $day,如“SUNDAY”“MONDAY”,它会返回日期。但由于某种原因,它错过了第一个星期天。

例如,如果今天是“2012 年 4 月 22 日星期日”,而我在 SUNDAY 中传递,它会给我下一个星期日而不是今天的日期。

如有任何帮助,我们将不胜感激。

谢谢。

最佳答案

您可以使用 strtotime()魔法:

function dayDate($day) {
    return date('m-d-Y', strtotime('next ' . $day));
}

考虑使用 PHP 的原生 DateTime不过,改为上课:

function dayDate($day) {
    return new DateTime('next ' . $day);
}

$nextMonday = dayDate('Monday');
echo $nextMonday->format('m-d-Y'); // 04-30-2012

使用 DateTime 对象除了允许您从方法/函数中删除硬编码的日期格式之外,还允许您做一些非常巧妙的事情,以防您需要更改它苍蝇。

关于php 将工作日转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282282/

相关文章:

php - Laravel 5 中的自定义分页 View

javascript - 在 JQuery 中查找本月的第三个星期日

vba - excel vba - 如何获取日期的日名称?

java - ElasticSearch - 如何获取当前日期和时间?

oracle - 需要在 oracle 中查找下一个和上一个工作日

iso8601 中的 swift 4 工作日

php - 类别的嵌套函数

php - 阿罗哈编辑器 : Inserting images/pictures

php - Magento 产品插入错误

swift3 - 每周触发通知 Swift 3