我正在尝试为一个用php/mysql构建的小型交易应用程序实现一个结算日期算法,以检查我所在地区的本地公共假日。我将所有本地的公共假日日期整齐地存储在我的数据库中,然后使用一个变量输出。
应用程序应该检查当前日期,然后添加三个工作日(减去周末),因为我国的结算周期遵循所有交易的t+3结算规则。这要求如果结算日是公共假日或周末,应用程序应该比较数据库表中的日期,然后设置一个新的工作日作为结算日。
有没有人能帮我补一下我可能遗漏的东西?请找到下面的代码:
<?php
$rsd = date ( 'Ymd' , strtotime ( '3 weekdays' ) );
$phd = $row_public_holidays['date'];
if ($rsd == $phd) {
echo date ( 'Ymd' , strtotime ( '4 weekdays' ) );
} else {
echo date ( 'Ymd' , strtotime ( '3 weekdays' ) );
}
?>发布于 2018-08-01 21:11:12
如果您需要date的输出具有8位数字,您可以将格式字符串从Ymj更新为Ymd。将最后一个字符从j更改为d将不再显示:
不带前导零的
月份日
至:
每月第几天,2位前导为零的数字
根据date文档(http://php.net/manual/en/function.date.php)。
把这些放在一起
对strtotime的调用执行计算并返回一个整数,该整数表示所确定的(或提供的)时区(http://php.net/manual/en/function.strtotime.php)中自纪元以来的秒数。对date的调用只是根据提供的格式(http://php.net/manual/en/function.date.php)将该整数格式化为字符串。
所以:
$time = strtotime('4 weekdays');
var_dump($time);
$date1 = date('Ymj', $time);
var_dump($date1);
$date2 = date('Ymd', $time);
var_dump($date2);输出:
int(1533600000)
string(7) "2018087"
string(8) "20180807"在本例中,对date的调用不会更改$time的值。
https://stackoverflow.com/questions/51633983
复制相似问题