variable があるとしましょう$day
。Monday
からまで何でもかまいませんSunday
。$day
その変数を使用して、それをインクリメントするにはどうすればよい1 day
ですか?
としましょう$day = "Friday"
。にインクリメントするにはどうすればよいSaturday
ですか?
variable があるとしましょう$day
。Monday
からまで何でもかまいませんSunday
。$day
その変数を使用して、それをインクリメントするにはどうすればよい1 day
ですか?
としましょう$day = "Friday"
。にインクリメントするにはどうすればよいSaturday
ですか?
date()とstrtotime()を使用して、文字列に「+1日」を追加します。
<?php
$day = "friday";
$day = date('D',strtotime($day.'+1 day'));
echo $day; // "Saturday"
?>
配列を使用しない、かなりクリーンなソリューションを次に示します。
$day = "Monday"
$NextDay = strtotime("+1 day", strtotime($day));
echo date("l", $NextDay);
組み合わせたソリューション:
$day = "Monday";
echo date("l", strtotime("+1 day", strtotime($day)));
覚えておいてくださいstrtotime("Monday")
、現在の日付から次の月曜日に戻ります。乾杯!
配列を使用します。近い将来、平日が変わる可能性はほとんどありません (皮肉)
// $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"));
繰り返し使用する方が少し簡単かもしれません:
$nextday = array(
"Monday" => "Tuesday",
"Tuesday" => "Wednesday",
"Wednesday" => "Thursday",
"Thursday" => "Friday",
"Friday" => "Saturday",
"Saturday" => "Sunday",
"Sunday" => "Monday",
);
$day = $nextday[$day];
配列内のパターンの回転について考えるのは良い練習ですが、時間関数を複製しようとしている場合に備えて、そうしないでください。PHPには、驚異的なstrtotime()があります。
$ts = strtotime( "+3 day", strtotime("December 30, 2007"));
echo date("r", $ts );
それはあなたに与えます:
Wed, 02 Jan 2008 00:00:00 -0500
配列を使用する方が良いでしょう。しかし、これも機能します。
$day = "Friday";
$next_day = date('l', strtotime("{$day} +1 DAY"));
そのためには配列を使用する方がよいでしょう。
$your_integer = 10;
$weekdays = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
print($weekdays[$your_integer % 7]);
をインクリメントすることにより、 -array$your_integer
をループします。$weekdays
モジュロ演算(%
)は正しい範囲内にとどまるため、10%7は3を生成し、出力は木曜日になります。
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>)