从 strtotime 中排除周末

Posted

技术标签:

【中文标题】从 strtotime 中排除周末【英文标题】:Exclude weekends from strtotime 【发布时间】:2015-11-18 17:31:09 【问题描述】:

我只想在这个 sn-p 中显示工作日(周一、周二、周三、周四、周五):<?=date('D M, d', strtotime('+3 days'))?>



我不知道要在 *** 中搜索什么。我对“根据工作日计算未来日期”或“检查日期是否为周末 php”的搜索没有产生我能理解的继续前进的内容。

用例:作为客户,我想知道我多久能收到服务。此代码将显示我何时可以获得服务,3 个工作日(即使是节假日)。

我找到了这个,http://php.net/manual/en/intlcalendar.getdayofweektype.php,但我仍然卡住了:(

【问题讨论】:

没有任何原生 PHP 函数可以为您执行此操作,但我在 PHPExcel 中实现了 MS Excel NETWORKDAYS() function,它可以执行此操作.... github.com/PHPOffice/PHPExcel/blob/1.8/Classes/PHPExcel/… 如果您说+3 days,这是否意味着如果日期是周末,您想提前到周一,还是根本不想计算周末?例如,如果是星期四,你说+3 days,这算Friday, Saturday, Sunday 并更改为Monday 还是只算Friday, Monday, Tuesday 并返回星期二? 感谢您的澄清问题。我只想在工作日(周一、周二、周三、周四、周五)提前。周六 +3 将在周三返回。 【参考方案1】:

如果你只想要工作日,那么 strtotime 可以做到这一点。

date('D M, d', strtotime('+3 weekdays'))

相对日期/时间格式: http://www.php.net/manual/en/datetime.formats.relative.php

【讨论】:

这似乎工作得很好。 weekdays 是否认为星期五是工作日? 是的,工作日包括周一至周五。

以上是关于从 strtotime 中排除周末的主要内容,如果未能解决你的问题,请参考以下文章

计算没有周末的2个日期之间的天数[重复]

使用 strtotime 从 jQueryUI datepicker 将字符串转换为 datetime

令人困惑的strtotime

strtotime 的 BUG

Joomla 麻烦 strtotime()

strtotime 在将值用作硬编码字符串时不返回值