删除Unix PHP中的小时,分​​钟和秒?

时间:2018-03-07 01:48:30

标签: php mysql

我使用PHP和Mysql处理一个项目,我需要计算年龄,但我需要删除小时,分钟和秒部分。这是一个例子:

出生日期2018-03-06 17:35:00但是 我需要2018-03-06 00:00:00

这是我的代码:

function FetchAgeCaduce($MaxDias=3){

    $fechaInicial = time();//date("Y-m-d");  

    $fecha = date("d/m/Y",$FechaFinal);
    $fechaInicial = strtotime("d/m/Y",$fecha);

    for ($i=0; $i<$MaxDias; $i++)  
    {  
        $Segundos = $Segundos + 86400;  
        $caduca = time()+$Segundos;//date("D",time()+$Segundos);  
        $var = date("D",$caduca);

        if ($var == "Sat")
        {  
            $i--;  
        }  
        else if ($var == "Sun")  
        {  
            $i--;
        }  
        else  
        {  
            $FechaFinal = time()+$Segundos;  
        }  
    }  

    return $FechaFinal;
}

我如何处理它以获得预期的结果?

2 个答案:

答案 0 :(得分:1)

正确的方式/ MySQL方式:

将数据以DATE存储在MySQL中,而不是DATETIMEDATE本身被描述为here。它不会存储时间,因此您将始终将00:00:00作为默认值。

不太正确的方式/ PHP方式:

Jay,Zeus,Freaking,K。Reist。学习使用DateTime,停止使用date!这就像这里的第二个问题,没有人学习DateTime

使用它!

$dt = new DateTime();
echo $dt->format("Y-m-d 00:00:00");

输出:

2018-03-06 00:00:00

P.S。第5行的$FechaFinal未定义。

答案 1 :(得分:0)

您可以在应用程序或数据库层上格式化日期。

使用MySQL

您可以使用MySQL DATE_FORMAT Function 将日期解析为所需格式。

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') dob;

请参阅DEMO on SQL Fiddle

使用PHP

假设您不想格式化数据库层中的日期,可能是因为您需要在其他一些计算中使用时间部分。使用date functions,如下图所示:

$dt = new DateTime();
echo $dt->format("Y-m-d 00:00:00");

//getting the expected date from the formatted string
$formateDate = DateTime::createFromFormat('Y-m-d H:i:s', $dt->format("Y-m-d 00:00:00"));