php - php mysql 中的贸易结算日期

标签 php mysql

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

应用程序应检查当前日期,然后添加三个工作日(减去周末),因为我国的结算周期遵循所有交易的 t+3 结算规则。这就要求,如果结算恰逢公共(public)假期或周末,应用程序应比较 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' ) );
}
?>

最佳答案

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

Day of the month without leading zeros

至:

Day of the month, 2 digits with leading zeros

根据日期 ( 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 的值。

关于php - php mysql 中的贸易结算日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51633983/

相关文章:

java - 从 persistence.xml 中的系统/文件获取用户和密码

php - 在一个 id 中存储多个值

mysql - SQL 内部连接 ​​2 个表

PHP Docker 容器无故退出

php - 如何使用 PHP 或 javascript 显示与用户相同时区的日期时间?

php - MySQL数据库检查

mysql - 添加多个项目的数据库设计

php - 我应该如何在函数中使用 PDO

php - CSV 导入大照片时出现 500 内部服务器错误

MySQL 外键引用语法