1

foreach loop毎分、で変数を設定しようとしています。私はこのコードを持っています:

$dhit = 2013-02-07 04:21:01;
$dnow= 2013-02-07 10:21:01;

$begin = new DateTime( $dhit );
$end = new DateTime( $dnow );

$interval = DateInterval::createFromDateString( '1 minute' );
$period = new DatePeriod($begin, $interval, $end);
$a = 0;
foreach ( $period as $dt ) {
  $a+=1;
  echo $a; 
}

$dhit少なくとも24時間経過している場合(2013-02-06 04:21:01)は非常にうまく機能し$dhitますが、同じ日付(同じ日、つまり2013-02-07)の場合は機能しません$dnow

私が間違っているのは何ですか?

4

2 に答える 2

3

これは私にとってはうまくいきます。システム時間が適切に設定されていない可能性があります。

どのようなエラーが表示されますか?

これは私が行ったテストであり、期待どおりに 1-360 を印刷しました

<?php

$dhit = '2013-02-07 04:21:01';
$dnow= '2013-02-07 10:21:01';

$begin = new DateTime( $dhit );
$end = new DateTime( $dnow );

$interval = DateInterval::createFromDateString( '1 minute' );
$period = new DatePeriod($begin, $interval, $end);
$a = 0;
foreach ( $period as $dt ) {
  $a+=1;
  print "$a\n"; 
}
于 2013-02-07T09:51:59.780 に答える
1

これは私にとっては問題なく動作し、123456 が出力されます。日付を引用符で囲むのを忘れていました。

$dhit = '2013-02-07 10:15:01';
$dnow= '2013-02-07 10:21:01';

$begin = new DateTime( $dhit );
$end = new DateTime( $dnow );

$interval = DateInterval::createFromDateString( '1 minute' );
$period = new DatePeriod($begin, $interval, $end);
$a = 0;
foreach ( $period as $dt ) {
  $a+=1;
  echo $a; //output 123456
}
于 2013-02-07T09:44:21.197 に答える