0

strtotime が午後の時間を 0 として返すという問題があります。

これは私のコードです:

date_default_timezone_set('Africa/Johannesburg');
$from = strtotime($_GET['meeting_date'] . ' ' . $_GET['meeting_start'] . ':00 ' . date('A',$_GET['meeting_start']));
$to = strtotime($_GET['meeting_date'] . ' ' . $_GET['meeting_end'] . ':00 ' . date('A',$_GET['meeting_end']));

基本的に、ユーザーは日付 (2012-06-19) を選択し、開始時刻 (フィルター処理済み、14:00) と終了時刻 (フィルター処理済み、15:00) を入力します。

次に、この部分は、指定された文字列を秒に変換します。

13:00 より前に入力したものは何でも動作しますが、12:59 以降に何かを入力すると 0 を返します

いくつかのテストケース:

User Input:
  Date: 2012-06-19
  Start: 10:00
  End: 11:50
Result: 
  start: 1340092800
  end: 1340099400

User Input:
  Date: 2012-06-19
  Start: 11:50
  End: 13:00
Result:
  start: 1340099400
  end: 0

これもまたばかげた間違いかもしれませんが、助けていただければ幸いです。なぜ0を返すのですか?

4

1 に答える 1

2

12 時間形式と 24 時間形式を混在させています。AM および PM サフィックスの日付形式'A'は、12 時間形式が使用されていることを示しているため、基本的に 12 を超える時間数を扱うことはできません。

于 2012-06-19T09:03:04.623 に答える