ここに解凍するには、いくつかの異なる問題があります。
$date = date("08:00");
これは有用ではありません。 date
は、タイムスタンプをフォーマットするためのものです。このような時間:分の文字列からの作成には使用できません。
あなたはおそらくしたいことは、この問題が発生することはありませんでした
$date = strtotime("08:00");
理由は、あなたのループ内で使用すると、その後すぐに、それを上書きすることです:
$date = strtotime("+".$i." hour");
このは作成されます。新しいタイムスタンプが、最初の時刻ではなくになりました。になります。 「+1時間」とは、タイムスタンプがnow + 1 hour
であることを意味します。あなたは
$date = strtotime("+{$i} hour", $date);
... 2番目の引数を使って、別のタイムスタンプの相対を作成するために
strtotime
を使用することができます...しかし、あなたはまだ開始値を上書きしています。それでは、代わりに
$start
という変数にこれを入れてみましょう:
$start = strtotime("08:00");
...
$date = strtotime("+".$i." hour", $start);
これは、あなたが取得する:
出力します
<?php
$start = strtotime("08:00");
for($i=0; $i<=10; $i++) {
$date = strtotime("+{$i} hour", $start);
echo date('H:i A', $date), PHP_EOL;
}
:
08:00 AM
09:00 AM
10:00 AM
...
18:00 PM
それはかなり午後9時にあなたを取得していませんが、それは午前8時から10時間離れていないからです。しかし、私はあなたに最後の部分を残します。
はまたhttps://eval.in/867974
を参照してください、あなたはあなたの日付と&回を操作するためのオブジェクト指向のインターフェイスを与える、PHP's DateTime libraryで見たいと思うかもしれません。このような単純なスクリプトでは、重要ではありません。
あなたはこのようにdate()を使用できますか?私は$ dateの値がdate( "08:00")であることを意味します; – MacBooc
日付の最初の引数は時間ではなく、形式です。 http://php.net/manual/en/function.date.php – Andreas