Làm thế nào để chuyển đổi Y-m-d H: i: s sang Y-m-d trong PHP?Làm thế nào để chuyển đổi Y-m-d H: i: s sang Y-m-d trong PHP?
Tôi có ví dụ:
$date = "2011-08-10 20:40:12";
và muốn chuyển nó sang chỉ
$output = "2011-08-10";
Cảm ơn trước.
Làm thế nào để chuyển đổi Y-m-d H: i: s sang Y-m-d trong PHP?Làm thế nào để chuyển đổi Y-m-d H: i: s sang Y-m-d trong PHP?
Tôi có ví dụ:
$date = "2011-08-10 20:40:12";
và muốn chuyển nó sang chỉ
$output = "2011-08-10";
Cảm ơn trước.
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
$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.
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 "!
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');
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)
Các bạn thật nhanh chóng! Điều này đã được đăng – demius
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
Bạn có thể sử dụng được xây dựng trong chức năng định dạng ngày php:
http://php.net/manual/en/datetime.format.php
để làm điều này:
$date = date_format($date, 'Y-m-d');
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));
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.
Lỗi Cung cấp của nó không thể chuyển đổi độ lệch chuỗi trong mảng. –
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ụ
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)
$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.
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. –
À vâng. nắm bắt tốt. Cảm ơn. đã sửa câu trả lời. –