ฉันมีวัน PHP ในรูปแบบของและฉันต้องการที่จะได้รับวันพรุ่งนี้ในรูปแบบเดียวกันดังนั้นสำหรับตัวอย่างเช่น2013-01-222013-01-23
เป็นไปได้อย่างไรกับ PHP?
ฉันมีวัน PHP ในรูปแบบของและฉันต้องการที่จะได้รับวันพรุ่งนี้ในรูปแบบเดียวกันดังนั้นสำหรับตัวอย่างเช่น2013-01-222013-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 คือ # วินาทีในหนึ่งวัน