在第二天上午10点创建Unix时间戳

wis*_*687 1 php

嗨假设我的时间戳为"2005-10-16 13:05:41".

我将如何创建一个变量,该变量将在下一次从该初始点开始上午10点时具有unixtime?

它会是这样的吗?

$timestamp = "2005-10-16 13:05:41";
$tenAMTime = strtotime("next 10am", $timestamp);
Run Code Online (Sandbox Code Playgroud)

我猜我有一些字符串可以用来做这件事吗?就像PHP文档中的"下一个星期四"示例一样.

Rob*_*ers 5

你几乎拥有它......

$tomorrowAt10Am = strtotime('+1 day 10:00:00', $timestamp);
Run Code Online (Sandbox Code Playgroud)

编辑:这是基于您的问题的标题,第二天上午10点的时间戳.如果你想在上午10点之前的任何时间输出10点,那么你会想要添加一些额外的逻辑,正如thatidiotguy建议的那样.

EDIT2:

出于某种原因,如果将所有逻辑放在相同的strtotime方法中,它将无法工作,因此我创建了一个简单的函数.你可以很容易地将它放在一行中,但我将其保留为2以使其更清晰:

$time1 = strtotime('-2 days 09:59:59');
$time2 = strtotime('-2 days 10:00:01');

function next_10am($time)
{
    $temp = strtotime('+1 day -10 hours', $time);
    return strtotime('10:00', $temp);
}

echo next_10am($time1); // Outputs: 2012-09-08 10:00:00
echo next_10am($time2); // Outputs: 2012-09-09 10:00:00
Run Code Online (Sandbox Code Playgroud)