PHP或SQL在日期之前3个工作日计算

Flu*_*key 1 php sql oracle doctrine

我正在使用Doctrine来处理我的应用程序的ORM.在表格中我有一个'start_date'.

在php中,我可以在日期前3天计算:

date('l jS F (Y-m-d)', strtotime('-3 days'));
Run Code Online (Sandbox Code Playgroud)

但这包括周末,我想只包括工作日.

即如果一个活动是在星期三,我会在星期天收到一封提醒电子邮件.我宁愿在星期五收到提醒电子邮件.那么我如何计算只使用Mon-Fri进行计算?

如果你也知道如何在Oracle中做到这一点,那将是非常棒的.

我更喜欢在php中使用它,所以我不必使用自定义的oracle函数(如果我希望更改数据库引擎),但是在oracle中知道也是有用的:-)

多谢你们.

Gor*_*don 5

PHP 5.3支持工作日等相关日期,例如

echo date('Y-m-d', strtotime('-3 weekdays', strtotime('2010-12-08')));
Run Code Online (Sandbox Code Playgroud)

将产生2010-12-03(星期五)而不是

echo date('Y-m-d', strtotime('-3 days', strtotime('2010-12-08')));
Run Code Online (Sandbox Code Playgroud)

这将产生2010-12-05(星期日)

APIstrtotime也支持任何支持的格式.DateTime

Afaik,从Oracle内部进行计算需要一些体操