2010-08-04 37 views
46

Tôi có một ngày tháng trong một biến. Định dạng của tôi là 08/04/2010 22:15:00. Tôi muốn hiển thị điều này như 10.15 PM. Làm thế nào để làm điều này trong PHP?Cách nhận AM/PM từ một ngày giờ trong PHP

Cảm ơn trước

+0

thể trùng lặp của [Format mysql datetime với php] (http://stackoverflow.com/questions/136782/format-mysql- datetime-with-php) – Gordon

+0

Tương tự: [Cách chuyển đổi thời gian từ AM/PM sang định dạng 24 giờ bằng PHP?] (http://stackoverflow.com/q/16955209/55075) – kenorb

Trả lời

102

Bạn cần phải chuyển nó sang một dấu thời gian UNIX (sử dụng strtotime) và sau đó trở thành định dạng mà bạn yêu cầu sử dụng date chức năng.

Ví dụ:

$currentDateTime = '08/04/2010 22:15:00'; 
$newDateTime = date('h:i A', strtotime($currentDateTime)); 
17

Sử dụng strtotime() để đặt ngày là dấu thời gian UNIX.

Để xuất, hãy xem các tùy chọn khác nhau của date().

$timestamp = strtotime("08/04/2010 22:15:00"); 
date("h.i A", $timestamp); 
+2

Không quá chắc chắn về chữ hoa " H "trong cuộc gọi ngày (lẻ để có một giờ mỗi ngày với AM/PM). Có, tôi đang quibbling như bạn đã đánh bại tôi với nó. Lần nữa. :-) –

+0

@middaparka cổ vũ! :) Bạn hoàn toàn đúng. Đã sửa. –

8

Như thế này:

$date = '08/04/2010 22:15:00'; 
echo date('h:i A', strtotime($date)); 

Kết quả:

10:15 PM 

More Info:

18
$dateString = '08/04/2010 22:15:00'; 
$dateObject = new DateTime($dateString); 
echo $dateObject->format('h:i A'); 
1

Đối với (PHP> = 5.2.0):

Bạn có thể sử dụng lớp DateTime. Tuy nhiên bạn có thể cần phải thay đổi định dạng ngày của bạn. Đã không thử của bạn. Định dạng ngày sau sẽ làm việc cho chắc chắn: YYYY-MM-DD HH-MM-SS

$date = new DateTime("2010-04-08 22:15:00"); 
echo $date->format("g"). '.' .$date->format("i"). ' ' .$date->format("A"); 

//output 
//10.15 PM 

Tuy nhiên, theo ý kiến ​​của tôi, sử dụng . như một tách cho 10.15 không được khuyến khích bởi vì người dùng của bạn có thể bị nhầm lẫn hoặc đây là một số hoặc thời gian định dạng thập phân. Cách phổ biến nhất là sử dụng 10:15 PM

6

cho linh hoạt với các định dạng khác nhau, sử dụng:

$dt = DateTime::createFromFormat('m/d/Y H:i:s', '08/04/2010 22:15:00'); 
echo $dt->format('g:i A') 

Kiểm tra php manual cho các tùy chọn định dạng bổ sung.

3

PHP Code:

date_default_timezone_set('Asia/Kolkata'); 
$currentDateTime=date('m/d/Y H:i:s'); 
$newDateTime = date('h:i A', strtotime($currentDateTime)); 
echo $newDateTime; 

Output: 17:03

+0

Câu trả lời đúng +1. –

0

Nó là khá dễ dàng. Giả sử bạn có một trường (được đặt trước) với loại "dấu thời gian" trong bảng cơ sở dữ liệu của bạn đã được truy vấn và bạn muốn hiển thị nó, hãy định dạng nó và cũng có AM/PM, tất cả những gì bạn cần làm được hiển thị bên dưới.

 <?php 
    echo date("F j, Y h:m:s A" ,strtotime($row_rshearing['dateposted'])); 


    ?> 

Lưu ý: OUTPUT của bạn nên xem xét một số những gì như thế này tùy thuộc vào ngày posted

ngày 21 tháng 5 2014 15:05:27

8
<?php 
$dateTime = new DateTime('now', new DateTimeZone('Asia/Kolkata')); 
echo $dateTime->format("d/m/y H:i A"); 
?> 

Bạn có thể sử dụng này để hiển thị ngày như thế này

22/06/15 10:46 AM 
0
$currentDateTime = $row['date']; 
echo $newDateTime = date('l jS \of F Y h:i:s A', strtotime($currentDateTime)); 
0
$time = strtotime($triprow['trip_start_date']); 
$myFormatForView = date("M-d-y g:i A", $time); 
$time1 = strtotime($triprow['trip_end_date']); 
$myFormatForView1 = date("M-d-y g:i A", $time1); 

echo $myFormatForView; 
echo $myFormatForView1; 
+4

Thông thường tốt hơn là giải thích một giải pháp thay vì chỉ đăng một số hàng mã ẩn danh. Bạn có thể đọc [Làm cách nào để viết câu trả lời hay] (https://stackoverflow.com/help/how-to-answer) và [Giải thích toàn bộ câu trả lời dựa trên mã] (https://meta.stackexchange.com)/câu hỏi/114762/giải thích-hoàn toàn-% E2% 80% 8C% E2% 80% 8Bcode dựa trên câu trả lời) –

1

Perfect câu trả lời cho AM/PM giải pháp thời gian sống

<?php echo date('h:i A', time())?> 
Các vấn đề liên quan