2012-10-12 29 views

Trả lời

31

Xuất phát từ ví dụ của bạn mà bạn cung cấp hơi muộn

echo date('d-m-Y \a\t H:i:s') . ' hours'; 

nếu đó là một đối tượng datetime

echo $datetime->format('d-m-Y \a\t H:i:s') . ' hours'; 

nếu bạn đã có nó như là một chuỗi

echo str_replace(' ', ' at ', $datetime) . ' hours'; 
+14

'\ a \ t' trả về' a' cho tôi. Đặt một '\ a \\ t' hoạt động, mặc dù. – rybo111

+1

Điều này là bởi vì trong khi 't' là một phần tử chuỗi' ngày' (số ngày trong một tháng nhất định), hãy thoát khỏi nó khi '\ t' xuất ra một tab. Điều này do đó cần thêm thoát! – Ben

+0

'\ a \ t' hoạt động với tôi để' a \\ t' –

7

có bạn có thể.

$date=date("m-d-Y"); 
$time=date("H:i:s"); 
$display=$date.'at'.$time; 
+1

Có thể thay đổi thành '$ display = $ date '. tại '. $ time; 'Chú ý các khoảng trống xung quanh' at'. –

0

Đầu tiên xin vui lòng đặt ngày được đưa ra trong định dạng ISO để strtotime() có thể đọc nó và sau đó sử dụng chức năng date() để định dạng ngày cho phù hợp.

date('/*DATE FORMAT YOU WANTED*/', strtotime('/*ISO FORMATTED DATE*/')); 
3

Lạ lùng thay tôi muốn đặt

date("l the jS F Y");

để đọc ví dụ Thứ hai ngày 9 tháng 1 năm 2017 nhưng thay vào đó tôi nhận được "Thứ Hai 3106UTC ngày 9 tháng 1 năm 2017". Tôi đọc câu trả lời ở trên từ xception và thay đổi điều này thành date("l \t\h\e jS F Y"), đã cho tôi "Thứ Hai ngày 9 tháng 1 năm 2017", vì vậy tôi đã đọc nhận xét từ rybo111 và thay đổi thành date("l \t\\h\\e jS F Y") và nó vẫn không hoạt động như bây giờ Ngày 9 tháng 1 năm 2017 ".

Sau một chút gãi đầu, tôi phát hiện ra rằng nếu các chữ cái trong từ cũng tạo thành một phần của hàm date(), ví dụ t = Số ngày trong tháng cụ thể, những số này cần được thoát kép, nếu không duy nhất thoát sẽ đủ. Do đó tại sao "at" cần được mã hóa \a\\t và "the" là \\t\\h\\e.

Các vấn đề liên quan