Tôi hiện đang có php có được thời gian hiện tại/ngày như vậy:Add 'x' số giờ cho đến nay
$now = date("Y-m-d H:m:s");
id gì muốn làm là có một mới biến $new_time
bằng $now
+ $hours
. $hours
là số giờ khác nhau, từ 24-800.
Mọi đề xuất?
Tôi hiện đang có php có được thời gian hiện tại/ngày như vậy:Add 'x' số giờ cho đến nay
$now = date("Y-m-d H:m:s");
id gì muốn làm là có một mới biến $new_time
bằng $now
+ $hours
. $hours
là số giờ khác nhau, từ 24-800.
Mọi đề xuất?
Bạn có thể sử dụng chức năng strtotime()
để thêm thứ gì đó vào dấu thời gian hiện tại. $new_time = date("Y-m-d H:i:s", strtotime('+5 hours'))
.
Nếu bạn cần biến trong hàm, bạn phải sử dụng dấu ngoặc kép sau đó như strtotime("+{$hours} hours")
, tuy nhiên tốt hơn bạn nên sử dụng strtotime(sprintf("+%d hours", $hours))
sau đó.
Điều đó có hiệu quả, nhưng nếu tôi thay thế '5' bằng một biến, nó không hoạt động đúng cách. 'strtotime ('+ $ giờ giờ')' –
Tôi đã cập nhật câu trả lời sẽ giúp bạn. – fdomig
Bạn không có nghĩa là $ new_time = date ("Y-m-d H: i: s", strtotime ('+ 5 giờ')? M là tháng, tôi là phút ... – richard
Bạn có thể sử dụng strtotime() để đạt được điều này:
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
Bạn cũng có thể sử dụng thời gian theo phong cách unix để tính toán:
$newtime = time() + ($hours * 60 * 60); // hours; 60 mins; 60secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $newtime) ."\n";
Um ... phút của bạn nên được sửa chữa ... ' i 'là trong vài phút. Không phải tháng. :) (tôi đã có cùng một vấn đề cho một cái gì đó quá
$now = date("Y-m-d H:i:s");
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
Một giải pháp khác (hướng đối tượng) là sử dụng DateTime :: thêm
Ví dụ:..
$now = new DateTime(); //current date/time
$now->add(new DateInterval("PT{$hours}H"));
$new_time = $now->format('Y-m-d H:i:s');
Nhỏ tyop ở đây, $ date-> format có thể là $ now-> format – Patrick
Tôi sử dụng chức năng sau đây để chuyển đổi giá trị ngày giờ bình thường sang định dạng ngày giờ của tôi sang định dạng ngày giờ của tôi.
private function ampmtosql($ampmdate) {
if($ampmdate == '')
return '';
$ampm = substr(trim(($ampmdate)), -2);
$datetimesql = substr(trim(($ampmdate)), 0, -3);
if ($ampm == 'pm') {
$hours = substr(trim($datetimesql), -5, 2);
if($hours != '12')
$datetimesql = date('Y-m-d H:i',strtotime('+12 hour',strtotime($datetimesql)));
}
elseif ($ampm == 'am') {
$hours = substr(trim($datetimesql), -5, 2);
if($hours == '12')
$datetimesql = date('Y-m-d H:i',strtotime('-12 hour',strtotime($datetimesql)));
}
return $datetimesql;
}
Nó chuyển đổi các giá trị datetime như,
2015-06-04 09:55 AM -> 2015-06-04 09:55
2015-06-04 03:55 PM -> 2015-06-04 15:55
2015-06-04 12:30 AM -> 2015-06-04 00:55
Hy vọng điều này sẽ giúp một ai đó.
Bạn có thể thử lib Ouzo goodies, và làm điều này theo cách thông thạo:
echo Clock::now()->plusHours($hours)->format("Y-m-d H:m:s");
API cho phép nhiều hoạt động.
Đúng
Bạn có thể sử dụng strtotime() để đạt được điều này:
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', strtotime($now))); // $now + 3 hours
strtotime() http://php.net/manual/en/function.strtotime.php –
tôi nghi ngờ nếu đó là những gì bạn muốn. Tôi muốn bạn chú ý rằng "m" trong "H: m: s" biểu thị tháng trên chữ số. Tôi tin rằng bạn muốn viết "H: i: s". Hãy kiểm tra chéo – Paullo