php - 为什么我无法从数据库中检索日期
问题描述
好的,首先,我检查了很多关于 stackoverflow 的问题,这些问题似乎并没有解决我的问题。在你们中的一些人可能会将这个问题变成一个重复的问题之前,我能解释一下我的代码有什么问题吗?
我想计算两个日期之间的天数,并且这些日期是从数据库中检索的。以下是我所做的
if($model->save()){
$date1 = strtotime($startDate);
$date2 = strtotime($endDate);
$days = ($date2 - $date1);
$Days = ($days/(60*60*24));
$model->no_of_days= $Days;
$model->save();
}
$startDate
并且$endDate
正在从数据库中检索。当我这样编码时,结果是0
.
但是,当我用日期替换它时,例如'2020-10-10'
and '2020-10-13'
,结果是3
.
我的数据库日期格式与替换日期相同。有人可以指导我并向我解释。我的代码有什么问题?
解决方案
第一步:我建议避免使用days
和Days
作为变量。
第二步:验证内容$startDate
并$endDate
使用本机var_dump函数转储它们。
var_dump($startDate);
var_dump($endDate);
如果您的数据库中的数据是“好”的,那么您应该得到正确的结果。所以我们认为你的 $startDate 和 $endDate 没有很好地初始化。
$date1 = strtotime('2020-10-10');
$date2 = strtotime('2020-10-13');
$days = ($date2 - $date1);
var_dump($days); //returns 259200
$days = ($days/(60*60*24));
var_dump($days); //returns 3
你的代码应该是:
if($model->save()){
$date1 = strtotime($startDate);
$date2 = strtotime($endDate);
$days = ($date2 - $date1);
$days = ($days/(60*60*24));
$model->no_of_days= $days;
$model->save();
}
第三步: 我认为你应该看看DatetimeInterval类或date_diff函数。
推荐阅读
- image - Base64转二进制数据python
- sql - 相关查询以获取 sql oracle 中的开始序列和结束序列
- mirth - 调试 Mirth Connect 服务器日志中的变压器错误
- html - 如何在纯 HTML 视图中保持 SVG 很小?
- c# - 输入字符串的格式不正确 EF6
- jenkins - 在哪里可以找到 Jenkins 1.658 的旧管道插件及其相关依赖项?
- node.js - Dockerfile 在 docker 容器中运行 nodejs 静态内容
- r - r data.table 似乎有重复的行,但 unique 没有找到它们
- android - 可点击的自定义数组列表
- javascript - Angular Reactive Forms - 在表单提交时排除空字段