设置Php和Mysql时间戳

时间:2015-01-23 12:51:27

标签: php mysql

设置Php和Mysql时间戳

我需要设置时间戳,例如。单独4小时或间隔头部

和2个小时的头部分开

在我的数据库中,我将其列作为时间戳。

我知道我可以做类似的事情,但我不确定它是否正确。任何帮助

// For 4 hours a head of time

$dt2=date("Y-m-d 04:i:s");


//For 2 days a head

$dt2=date("Y-m-02 H:i:s");

4 个答案:

答案 0 :(得分:1)

//For 4 hours ahead of time
$dt2 = date("Y-m-d H:i:s", strtotime('+4 hours'));

//For 2 days ahead of time
$dt2 = date("Y-m-d H:i:s", strtotime('+2 days'));

答案 1 :(得分:1)

在我看来,使用DateTime字段和DateTime类更好。

您可以非常轻松地修改这些对象。例如:

$aktDate = new \DateTime();

现在,您在对象中拥有了日期和时间。如果您愿意,可以在字符串中查看DateTime函数,以便手动设置日期。

$aktDate = new \DateTime('Y-m-d 04:i:s');

如果您想使用modify功能,则无法修改日期。

在你的情况下:

$pastDate = clone $aktDate;
$pastDate->modify('+2 days');

$futureDate = clone $aktDate;
$futureDate->modify('+4 days');

if($pastDate < $aktDate && $aktDate < $futureDate) {
    // do something
}

我更喜欢DateTime函数,因为它具有可读性,如果您有这样的字段,您可以直接使用MySQL数据库中的DateTime字段。你可以把这个例子写得更短,但是你的可读性更好。

答案 2 :(得分:0)

您需要使用strtotime()函数(http://php.net/manual/en/function.strtotime.php)。

对于您的示例:

//+2 hours<br>
strtotime("+2 hours");

// +2 days<br>
strtotime("+2 days")

编辑:,根据您的要求,关于发布的值,语法是这样的:

strtotime("+2".$_POST['field_name']." days");

您可以使用小时/天/月/周/年以及+或 -

答案 3 :(得分:0)

$date = new DateTime('now');
$date->modify('+2 days');
echo $date->format('Y-m-d H:i:s');

$date = new DateTime('now');
$date->modify('+4 hours');
echo $date->format('Y-m-d H:i:s');