ฉันมีวัน PHP ในรูปแบบของและฉันต้องการที่จะได้รับวันพรุ่งนี้ในรูปแบบเดียวกันดังนั้นสำหรับตัวอย่างเช่น2013-01-22
2013-01-23
เป็นไปได้อย่างไรกับ PHP?
ฉันมีวัน PHP ในรูปแบบของและฉันต้องการที่จะได้รับวันพรุ่งนี้ในรูปแบบเดียวกันดังนั้นสำหรับตัวอย่างเช่น2013-01-22
2013-01-23
เป็นไปได้อย่างไรกับ PHP?
คำตอบ:
ใช้DateTime
$datetime = new DateTime('tomorrow');
echo $datetime->format('Y-m-d H:i:s');
หรือ:
$datetime = new DateTime('2013-01-22');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
หรือ:
$datetime = new DateTime('2013-01-22');
$datetime->add(new DateInterval("P1D"));
echo $datetime->format('Y-m-d H:i:s');
หรือใน PHP 5.4+:
echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D"))
->format('Y-m-d H:i:s');
$tomorrow = date("Y-m-d", strtotime('tomorrow'));
หรือ
$tomorrow = date("Y-m-d", strtotime("+1 day"));
ลิงค์ช่วยเหลือ: STRTOTIME ()
เนื่องจากคุณติดแท็กสิ่งนี้ด้วย strtotimeคุณสามารถใช้กับ+1 day
ตัวปรับแต่งดังนี้:
$tomorrow_timestamp = strtotime('+1 day', strtotime('2013-01-22'));
<? php
//1 Day = 24*60*60 = 86400
echo date("d-m-Y", time()+86400);
?>
echo date ('Y-m-d',strtotime('+1 day', strtotime($your_date)));
ใช้DateTime
:
เพื่อรับพรุ่งนี้ต่อจากนี้:
$d = new DateTime('+1day');
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;
ผลลัพธ์: 28/06/2017 08.13.20
เพื่อรับวันพรุ่งนี้จากวันที่:
$d = new DateTime('2017/06/10 08.16.35 +1day')
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;
ผลลัพธ์: 11/06/2560 08.16.35
หวังว่าจะช่วยได้!
/**
* get tomorrow's date in the format requested, default to Y-m-d for MySQL (e.g. 2013-01-04)
*
* @param string
*
* @return string
*/
public static function getTomorrowsDate($format = 'Y-m-d')
{
$date = new DateTime();
$date->add(DateInterval::createFromDateString('tomorrow'));
return $date->format($format);
}
แปลกดูเหมือนว่ามันจะทำงานได้ดีอย่างสมบูรณ์แบบ: date_create( '2016-02-01 + 1 day' );
echo date_create( $your_date . ' + 1 day' )->format( 'Y-m-d' );
ควรทำ
ประการแรกการหานามธรรมที่ถูกต้องเป็นกุญแจสำคัญเสมอ กุญแจสำคัญในการอ่านการบำรุงรักษาและความสามารถในการขยาย
ที่นี่ผู้สมัครที่ค่อนข้างชัดเจนคือISO8601DateTime
ไฟล์. มีการใช้งานอย่างน้อยสองรายการ: อันแรกคือวันที่และเวลาที่แยกวิเคราะห์จากสตริงและอันที่สองคือวันพรุ่งนี้ ดังนั้นจึงมีสองคลาสที่สามารถใช้ได้และการรวมกันของพวกเขาทำให้ได้ผลลัพธ์ที่ต้องการ (เกือบ):
new Tomorrow(new FromISO8601('2013-01-22'));
วัตถุทั้งสองเป็นวันที่และเวลา ISO8601 ดังนั้นการแสดงข้อความจึงไม่ใช่สิ่งที่คุณต้องการ ดังนั้นจังหวะสุดท้ายคือการทำให้พวกเขาใช้รูปแบบวันที่:
new Date(
new Tomorrow(
new FromISO8601('2013-01-22')
)
);
เนื่องจากคุณต้องการการแสดงข้อความไม่ใช่แค่วัตถุคุณจึงเรียกใช้value()
เมธอด
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแนวทางนี้โปรดดูที่โพสต์นี้นี้
นี่คือฟังก์ชั่นการทำงาน
function plus_one_day($date){
$date2 = formatDate4db($date);
$date1 = str_replace('-', '/', $date2);
$tomorrow = date('Y-m-d',strtotime($date1 . "+1 days"));
return $tomorrow; }
$date = '2013-01-22';
$time = strtotime($date) + 86400;
echo date('Y-m-d', $time);
โดยที่ 86400 คือ # วินาทีในหนึ่งวัน