gpt4 book ai didi

PHP Date to String 比较日期

转载 作者:行者123 更新时间:2023-11-28 23:54:51 27 4
gpt4 key购买 nike

我只有基本的 PHP 知识,我正在使用 PHP+Mysql 并尝试检查两个日期之间的天数差异;第一个日期在脚本中由我自己格式化为字符串:

$f_entrega=$_POST['year1']."-".$_POST['month1']."-".$_POST['day1'];

导致问题的第二个日期 ($f_dock) 取自 mysql 数据库,该列的格式为 DATE。为了比较日期,我执行以下操作:

if(!empty($_POST["id"])){
$f_entrega=$_POST['f_entrega_a']."-".$_POST['f_entrega_m']."-".$_POST['f_entrega_d'];
$f_entr=$f_entrega;
$mysqli=conectar();
$resultado = $mysqli->query("SELECT id,f_dock FROM pt");
$row = $resultado->fetch_assoc();
for ($i=0;$i<count($ids);$i++){
do{
if ($ids[$i]==$row["id"]){
$f_dock=$row["f_dock"];
break;
}
} while ($row = $resultado->fetch_assoc());
$error=0;
var_dump($f_dock);
$f_dock=strtotime($f_dock);
$f_dock=date('Ymd',$f_dock);
$f_entrega=$f_entr;
$f_entrega=strtotime($f_entrega);
$f_entrega=date('Ymd',$f_entrega);
$f_dock=DateTime::createFromFormat('Ymd',$f_dock);
$f_entrega=DateTime::createFromFormat('Ymd',$f_entrega);
$dias_vendor=date_diff($f_dock,$f_entrega);
$tat=$dias_vendor->format('%R%a');

有时它工作正常,但有时我收到警告:strtotime() expects parameter 1 to be string, object given in [first line] and $tat is not correctly calculated and has strange values .我之前尝试过不同的解决方案,例如 $f_dock=(string)$f_dock 但最终在某些情况下转换总是失败。预先感谢您提供任何提示。

最佳答案

您收到的错误是因为您输入的字符串不是 strtotime() 函数要转换的有效字符串。

例如 2015-08-31 将转换得很好,今天明天+7 天

要获得更具体的帮助,您需要告诉我们 $f_dock 的值是多少(正如 Marcos 在他的评论中所说,var_dump($f_dock) 会帮助您这个)。

然而,关于解决方案:

$date1 = strtotime($f_dock); //timestamp in seconds
$date2 = strtotime($f_entrega); //same for the second date
$difference = $date1 - $date2; //difference in seconds between the dates
$days = floor($difference/86400);

86400 是一天中的秒数,所以找出有多少秒差,然后看看那里有多少天的秒并使用 floor() 将数字向下舍入。工作完成。

关于PHP Date to String 比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com