ฉันจะเพิ่ม 24 ชั่วโมงในการประทับเวลา Unix ใน php ได้อย่างไร


119

ฉันต้องการเพิ่มเวลา 24 ชั่วโมงในการประทับเวลาในตอนนี้ ฉันจะค้นหาหมายเลขการประทับเวลาของยูนิกซ์เป็นเวลา 24 ชั่วโมงเพื่อเพิ่มลงในการประทับเวลาได้อย่างไร

ฉันต้องการทราบวิธีเพิ่ม 48 ชั่วโมงหรือหลายวันในการประทับเวลาปัจจุบัน

ฉันจะทำสิ่งนี้ให้ดีที่สุดได้อย่างไร


"วิธีเพิ่ม 48 ชั่วโมงหรือหลายวัน" - เวลาออมแสงเป็นปัญหาหรือไม่
VolkerK

1
ฉันต้องการชี้ให้เห็นคำตอบของÁlvaro G.Vicario การเพิ่ม 24 ชั่วโมงธรรมดาอาจไม่ใช่สิ่งที่คุณต้องการในทุกกรณี
Boldewyn

1
Yepp นั่นเป็นเหตุผลที่ฉันอยากรู้ว่า zeckdude รู้เรื่อง dst หรือไม่และเป็นเรื่องที่น่ากังวลสำหรับเขา
VolkerK

คำตอบ:


301

คุณอาจต้องการเพิ่มหนึ่งวันแทนที่จะเป็น 24 ชั่วโมง ไม่ใช่ทุกวันที่มี 24 ชั่วโมงเนื่องจาก (ท่ามกลางสถานการณ์อื่น ๆ ) เวลาออมแสง:

strtotime('+1 day', $timestamp);

6
กรณีนี้ไม่คลุมเครือนักเนื่องจากรหัสอื่น ๆ ของคำถามก่อนหน้านี้จะแตกในเช้าวันอาทิตย์หน้า +1
Boldewyn

รหัสของฉันคิดว่าเดือนมีนาคมมีเวลา 32 วันเนื่องจากกรณีนี้ดังนั้นจึงควรคำนึงถึง DST เว้นแต่คุณจะดำเนินการใน GMT แต่เพียงผู้เดียว
nullability

86

การประทับเวลา Unix เป็นเพียงจำนวนวินาทีนับตั้งแต่เดือนมกราคมปี 1970 แรกดังนั้นในการเพิ่ม 24 ชั่วโมงในการประทับเวลา Unix เราจึงเพิ่มจำนวนวินาทีใน 24 ชั่วโมง (24 * 60 * 60)

time() + 24*60*60;

53
24 * 60 * 60 = 86400 (อาจช่วยใครสักคนได้สองสามวินาที)
แอนดรูว์


16

การประทับเวลา Unix เป็นหน่วยวินาทีดังนั้นเพียงเพิ่มจำนวนวินาทีที่เกี่ยวข้องลงในการประทับเวลา:

$timeInFuture = time() + (60 * 60 * 24);

14

คุณสามารถใช้คลาสDateTime ได้เช่นกัน:

$timestamp = mktime(15, 30, 00, 3, 28, 2015);

$d = new DateTime();
$d->setTimestamp($timestamp);

เพิ่มP eriod ของ 1 D ay:

$d->add(new DateInterval('P1D'));
echo $d->format('c');

ดูDateIntervalสำหรับรายละเอียดเพิ่มเติม


0

ดังที่คุณได้กล่าวไว้หากคุณต้องการเพิ่มเวลา 24 ชั่วโมงในการประทับเวลาในตอนนี้คุณสามารถทำได้:

 <?php echo strtotime('+1 day'); ?>

รหัสด้านบนจะเพิ่ม 1 วันหรือ 24 ชั่วโมงในการประทับเวลาปัจจุบันของคุณ

แทนที่+1 dayคุณจะทำอะไรก็ได้ตามที่คุณต้องการตามที่คู่มือ phpบอกว่าstrtotimeสามารถแยกวิเคราะห์เกี่ยวกับคำอธิบายวันที่และเวลาที่เป็นข้อความภาษาอังกฤษลงในการประทับเวลา Unixได้

ตัวอย่างจากคู่มือดังต่อไปนี้:

<?php
     echo strtotime("now"), "\n";
     echo strtotime("10 September 2000"), "\n";
     echo strtotime("+1 day"), "\n";
     echo strtotime("+1 week"), "\n";
     echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
     echo strtotime("next Thursday"), "\n";
     echo strtotime("last Monday"), "\n";
?>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.