设置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");
答案 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');