3

variable があるとしましょう$dayMondayからまで何でもかまいませんSunday$dayその変数を使用して、それをインクリメントするにはどうすればよい1 dayですか?

としましょう$day = "Friday"。にインクリメントするにはどうすればよいSaturdayですか?

4

8 に答える 8

3

date()strtotime()を使用して、文字列に「+1日」を追加します。

<?php
$day = "friday";
$day = date('D',strtotime($day.'+1 day'));
echo $day; // "Saturday"
?>
于 2012-11-09T02:15:43.893 に答える
1

配列を使用しない、かなりクリーンなソリューションを次に示します。

$day = "Monday"
$NextDay = strtotime("+1 day", strtotime($day));
echo date("l", $NextDay);

組み合わせたソリューション:

$day = "Monday";
echo date("l", strtotime("+1 day", strtotime($day)));

覚えておいてくださいstrtotime("Monday")、現在の日付から次の月曜日に戻ります。乾杯!

于 2012-11-09T02:21:23.397 に答える
1

配列を使用します。近い将来、平日が変わる可能性はほとんどありません (皮肉)

// $weekday can be a string or a numeric value (1=Monday, 0,7=Sunday)
function getNextDayOfWeek($weekday, $count = 1) {
    static $weekdays = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');

    if (!is_numeric($weekday)) {
        $weekday = (int) array_search(ucfirst(strtolower($weekday)), $weekdays);
    }
    // make $count positive!
    if ($count < 0) $count = ($count % -7) + 7;

    return $weekdays[($weekday + $count) % 7];
}

ローカリゼーションが心配な場合は、翻訳配列を用意してください:)

$weekdays_fr = array('Monday' => 'lundi', 'Tuesday' => 'mardi', ...);

$nextDay_fr = $weekdays_fr[getNextDayOfWeek('Friday')];  //= 'samedi'

**編集**

組み込みの PHP 関数を使用する別の方法を次に示しますが、それでも私は配列ソリューションを好みます。

$weekday = 'Friday';

$nextDay = strftime('%A', strtotime("{$weekday} +1 day"));
于 2012-11-09T02:08:58.400 に答える
0

繰り返し使用する方が少し簡単かもしれません:

$nextday = array(
    "Monday" => "Tuesday",
    "Tuesday" => "Wednesday",
    "Wednesday" => "Thursday",
    "Thursday" => "Friday",
    "Friday" => "Saturday",
    "Saturday" => "Sunday",
    "Sunday" => "Monday",
);

$day = $nextday[$day];
于 2012-11-09T02:13:14.350 に答える
0

配列内のパターンの回転について考えるのは良い練習ですが、時間関数を複製しようとしている場合に備えて、そうしないでください。PHPには、驚異的なstrtotime()があります。

$ts = strtotime( "+3 day", strtotime("December 30, 2007"));
echo date("r", $ts );

それはあなたに与えます:

Wed, 02 Jan 2008 00:00:00 -0500

于 2012-11-09T02:13:32.560 に答える
0

配列を使用する方が良いでしょう。しかし、これも機能します。

$day = "Friday";
$next_day = date('l', strtotime("{$day} +1 DAY"));
于 2012-11-09T02:14:27.110 に答える
0

そのためには配列を使用する方がよいでしょう。

$your_integer = 10;
$weekdays = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
print($weekdays[$your_integer % 7]);

をインクリメントすることにより、 -array$your_integerをループします。$weekdaysモジュロ演算(%)は正しい範囲内にとどまるため、10%7は3を生成し、出力は木曜日になります。

于 2012-11-09T02:11:11.480 に答える
0

strtotime()およびstrftime( )を参照してください

$time = strtotime(<your_date_as_a_string>) + (60*60*12); // seconds in 12 hours
$date = strftime(<format_you want>, $time); // or date(<same params>)
于 2012-11-09T17:38:48.163 に答える