0

前の月曜日 (先週) と先週の終わり (日曜日) を取得したいのですが、コードがサーバーで実行されるときと、localhost で実行されるときは異なります。

これは私のコードです:

$start_past = strtotime("last week"); 
$end_past = strtotime("+6 day",$start_past);

echo $start_past_qry = date("m/d/Y",$start_past);
echo $end_past_qry = date("m/d/Y",$end_past);

ローカルホストでの結果

  • 2013/05/06
  • 2013/05/12

サーバー上の結果

  • 2013/05/13
  • 2013/05/19

サーバー上の結果は、現在の週に該当するようです。先週の範囲を取得したい。

4

2 に答える 2

3

PHPマニュアルより

http://php.net/manual/en/function.strtotime.php

この関数の各パラメーターは、そのパラメーターでタイム ゾーンが指定されていない限り、既定のタイム ゾーンを使用します。意図しない限り、各パラメーターで異なるタイムゾーンを使用しないように注意してください。デフォルトのタイムゾーンを定義するさまざまな方法については、date_default_timezone_get()を参照してください。

関数で実行できるデフォルトのタイムゾーンを定義する必要があります

date_default_timezone_set()

サポートされているタイムゾーンのリスト

また、次の点にも注意してください。

PHP 5.3.0より前では、 strtotime() の時間引数に指定された今週、前の週、先週、来週などの相対時間形式は、現在の日付/時刻を基準とした 7 日間を意味すると解釈されていました。月曜日から日曜日までの 1 週間よりも

PHP のバージョンが同じで、少なくとも 5.3.0 であることを確認してください。詳細については、strtotime 関数のマニュアルを確認してください。

于 2013-05-15T10:43:28.083 に答える
2
$Current = Date('N');

$DaysToSunday = 7 - $Current; 

$DaysFromMonday = $Current - 1; 

$Sunday = Date('d/m/y', StrToTime("+ {$DaysToSunday} Days")) . "<br>"; 

$date = Date('Y/m/d', StrToTime("- {$DaysFromMonday} Days"));

$mod_date = strtotime($date."- 7 days");

echo $last_week_monday=date("Y/m/d",$mod_date) . "<br>";
于 2013-10-04T12:54:26.327 に答える