Làm cách nào để thêm 24 giờ vào dấu thời gian unix trong php?


119

Bây giờ tôi muốn thêm 24 giờ vào dấu thời gian. Làm cách nào để tìm số dấu thời gian unix trong 24 giờ để tôi có thể thêm nó vào dấu thời gian ngay bây giờ?

Tôi cũng muốn biết cách thêm 48 giờ hoặc nhiều ngày vào dấu thời gian hiện tại.

Làm thế nào tôi có thể làm tốt nhất về việc này?


"làm thế nào để thêm 48 giờ hoặc nhiều ngày" - thời gian tiết kiệm ánh sáng ban ngày có phải là một vấn đề không?
VolkerK

1
Tôi muốn chỉ ra câu trả lời của Álvaro G. Vicario. Thêm 24 giờ thuần túy có thể không phải là điều bạn muốn trong mọi trường hợp.
Boldewyn

1
Yepp, đó là lý do tại sao tôi muốn biết liệu zeckdude có biết về dst hay không và liệu nó có khiến anh ta lo lắng hay không.
VolkerK

Câu trả lời:


301

Bạn có thể muốn thêm một ngày thay vì 24 giờ. Không phải tất cả các ngày đều có 24 giờ do (trong các trường hợp khác) thời gian tiết kiệm ánh sáng ban ngày:

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

6
Trường hợp này không quá mờ mịt, vì tất cả các mã khác của các câu hỏi trước đó sẽ bị phá vỡ vào sáng chủ nhật tới. +1
Boldewyn

Mã của tôi nghĩ rằng tháng 3 có 32 ngày vì trường hợp này, vì vậy, thật khôn ngoan khi lưu ý đến DST trừ khi bạn chỉ hoạt động theo GMT.
nullability

86

Dấu thời gian Unix chỉ đơn giản là số giây kể từ tháng 1 năm 1970 đầu tiên, vì vậy để thêm 24 giờ vào dấu thời gian Unix, chúng tôi chỉ cần thêm số giây trong 24 giờ. (24 * 60 * 60)

time() + 24*60*60;

52
24 * 60 * 60 = 86400 (có thể cứu ai đó vài giây)
Andrew


16

Dấu thời gian Unix tính bằng giây, vì vậy chỉ cần thêm số giây tương ứng vào dấu thời gian:

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

14

Bạn cũng có thể sử dụng lớp DateTime :

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

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

Thêm phần tử P của 1 D ay:

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

Xem DateInterval để biết thêm chi tiết.


0

Như bạn đã nói nếu bạn muốn thêm 24 giờ vào dấu thời gian ngay bây giờ thì bạn chỉ cần làm:

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

Đoạn mã trên sẽ thêm 1 ngày hoặc 24 giờ vào dấu thời gian hiện tại của bạn.

Thay vì +1 daybạn có thể lấy bất cứ thứ gì bạn muốn , Như hướng dẫn sử dụng php nói rằng strtotime có thể Phân tích cú pháp về bất kỳ mô tả ngày giờ bằng văn bản tiếng Anh nào thành dấu thời gian Unix .

các ví dụ từ sách hướng dẫn như sau:

<?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";
?>

0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.