2011-08-10 66 views

Trả lời

5

Dễ dàng thực hiện với strtotime() và có khả năng thay đổi sang bất kỳ định dạng ngày nào khác mà bạn có thể cần.

$old_date = "2011-08-10 20:40:12"; 
$new_date = date("Y-m-d", strtotime($old_date)); 
echo $new_date; 

// Prints 2011-08-10 
1
$date = date("Y-m-d", strtotime($date)); 

Chỉ cần sử dụng định dạng ngày cho ngày chỉ và chuyển đổi chuỗi của bạn đến một dấu thời gian.

3

Vâng, một cách đơn giản để làm điều đó sẽ là như sau (nếu bạn đã nhận được ngày trong một chuỗi):

$output = substr($date, 0, 10); 

Điều này có nghĩa rằng bạn lấy 10 ký tự đầu tiên trong "2011 -08-10 20:40:12 ", để lại cho bạn với" 2011-08-10 "!

14

nhanh/bẩn:

$output = substr('2011-08-10 20:40:12', 0, 10); 

hơi mạnh mẽ hơn:

$output = date('Y-m-d', strtotime('2011-08-10 20:40:12')); 

khá đáng tin cậy:

$output = DateTime::createFromFormat('Y-m-d h:i:s', '2011-08-10-20:40:12')->format('Y-m-d'); 
+0

Trong trường hợp thứ ba trên PHP 5.5.4: Lỗi nghiêm trọng: Lớp 'Ngày' không được tìm thấy, nhưng DateTime :: createFromFormat() hoạt động. –

+0

À vâng. nắm bắt tốt. Cảm ơn. đã sửa câu trả lời. –

2

Một giải pháp khác, nghĩ không tốt là chỉ cần làm một chuỗi con:

$newDate = substr($date, 0, 10) 
+0

Các bạn thật nhanh chóng! Điều này đã được đăng – demius

+0

Vui mừng khi thấy tôi không phải là người duy nhất nghĩ điều này "đơn giản"! :-) – ninetwozero

1

tôi thích strftime cho đến nay vì nó định dạng đầu vào phù hợp với những người trong C và khác ngôn ngữ.

$output = strftime('%Y-%m-%d', strtotime($date)); 
-1

Hãy thử:

$date = explode(" ",$date); 
$output = $date[0]; 

Nếu họ được ngăn cách bởi không gian, bạn có thể sử dụng phát nổ để tách chúng.

+0

Lỗi Cung cấp của nó không thể chuyển đổi độ lệch chuỗi trong mảng. –

0

Một tinh chỉnh để phương pháp này sử dụng phát nổ, do đó bạn có thể biến nó thành một lót:

danh sách ($ date) = explode ('', $ date);

chức năng danh sách rất tiện dụng cho các ngày.

Ví dụ khác sử dụng danh sách:

danh sách ($, $ month, $ day) = phát nổ ('', $ ngày);

Ngoài ra, bạn là tốt nhất để sử dụng 'thay vì "trong chuỗi, trừ khi chuỗi của bạn bao gồm các biến.

ví dụ

  • 'yada'
  • 'bing'
  • " Xin chào { $ bob} "

Tôi chán ngấy khi thấy tài liệu PHP sử dụng" chuỗi "trong các ví dụ mà họ nên sử dụng 'chuỗi': o)

0
$old_date = "2011-08-10 20:40:12"; 
$new_date = date("Y-m-d", strtotime($old_date)); 
echo $new_date; 

// Prints 2011-08-10 

Điều này sẽ rất hữu ích.

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