1

こんにちは「2005-10-1613:05:41」のタイムスタンプがあるとします。

次回、最初のポイントから午前10時になるときのUNIX時間を設定する変数を作成するにはどうすればよいですか?

こんな感じでしょうか?

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

これを行うために使用できる文字列があると思いますか?PHPドキュメントの「次の木曜日」の例のように。

4

2 に答える 2

5

あなたはほとんどそれを持っていました...

$tomorrowAt10Am = strtotime('+1 day 10:00:00', $timestamp);

編集:これは、翌日の午前10時のタイムスタンプで、質問のタイトルに基づいています。同じ日の午前10時より前の任意の時間に午前10時を出力する場合は、thatidiotguyが提案したように、ロジックを追加する必要があります。

Edit2:

どういうわけか、すべてのロジックを同じstrtotimeメソッドに入れると機能しないので、単純な関数を作成しました。これは簡単に1行にまとめることができますが、わかりやすくするために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
于 2012-09-10T22:10:19.870 に答える
2

strtotime午前10時が過ぎたかどうかを知る方法はないので、次のようにします。

$timestamp = strtotime("2005-10-16 13:05:41");
// Get current hour and if it is > 10 add a day
if (date('G',$timestamp) >= 10) {
    $tenAMTime = strtotime("+1 day 10am", $timestamp);
}
else {
    $tenAMTime = strtotime("10am", $timestamp);
}
echo date('r',$tenAMTime); // Comment this out if you want
于 2012-09-10T22:13:45.887 に答える