phpmysql中的交易结算日期

时间:2018-08-01 13:01:30

标签: php mysql

我正在尝试实现一个结算日期算法,以检查我所在地区是否有使用php / mysql构建的小型交易应用程序的本地公共假期。我将所有本地公共假期日期整齐地存储在数据库中,然后使用变量输出。

应用程序应检查当前日期,然后添加三个工作日(减去周末),因为我国的结算周期遵循所有交易的t + 3结算规则。这要求如果结算应在公共假日或周末进行,则应用程序应比较db表中的日期,然后将新的工作日设置为结算日期。

有人可以帮我解决我可能缺少的东西吗?请在下面找到代码:

<?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' ) );
}
?>

1 个答案:

答案 0 :(得分:0)

如果您需要date的输出具有8位数字,则可以将格式字符串从Ymj更新为Ymd。将最后一个字符从j更改为d从显示:

  

一个月中的日期,不带前导零

收件人:

  

每月的某天,两位数字,前导零

根据datehttp://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的值。