在PHP中添加23小时59分钟作为Unix时间戳

时间:2018-11-15 08:49:59

标签: php date unix time

有人可以给我一个工作示例,说明我的努力使我无处可做吗?

我的代码当前说

if (isset($_POST['startdate'])) {
    $startdate = DatePickerToTime($_POST['startdate']);
} else { 
    $startdate = strtotime('today midnight');
}

if (isset($_POST['enddate'])) { 
    $enddate = DatePickerToTime($_POST['enddate']);
} else { 
    $enddate = time();
}

有效。

但是,我想说的是,如果startdate等于enddate,那么请向enddate添加23小时59分钟

我已阅读文档并正在尝试

if($_POST['$startdate'] == $_POST['$enddate']) {
    $_POST['$enddate'] += date("h:i:sa", "23:59:59");
}

但这不起作用。

2 个答案:

答案 0 :(得分:2)

Unix时间戳以秒为单位。您可以在结束日期前添加86340秒 1

$_POST['$enddate'] += 86340; // add 23h 59m

但是,如注释中所述,日期和时间处理应始终由语言自己的日期和时间逻辑处理,以防止出现very very odd and specific cases

我强烈建议您使用PHP的DateTimeDateInterval来增加时间。

$date = new DateTime();
$date->setTimestamp($_POST['enddate']);
$date->add(new DateInterval('PT23H59M')); // add 23 hours and 59 minutes

$_POST['$enddate'] = $date->getTimestamp();

1 86340秒等于23小时59分钟

答案 1 :(得分:1)

$datetime1 = date('2009-10-11 12:30:00');
$datetime2 = date('2009-10-11 12:30:00');
echo "<pre>";
if($datetime1 == $datetime2){
    echo "yes";
    echo "<br>";
    $datetime2 = date("Y-m-d H:i:s", strtotime("+23 hours 59 minutes",strtotime($datetime2)));
    echo $datetime1."===================".$datetime2;
}
else {
    echo "NO<br>";
    echo $datetime1."===================".$datetime2;
}