2012-06-03 40 views
5

tôi có mã:strftime làm vốn chữ cái đầu tiên (chữ hoa) trong PHP

<?php echo strftime("%Y %B %e, %A")?> 

Trong một số ngôn ngữ tôi nhận được:

2012 Junio ​​3, domingo

Tôi muốn điều đó chữ cái đầu tiên của tất cả các từ sẽ là chữ hoa (viết hoa), vì vậy nó sẽ trông giống như:

2012 Junio ​​3, Domingo

Tôi không tìm thấy câu trả lời nào trên internet, có ai có ý tưởng không? :)

+4

Bạn nhận ra rằng tháng và ngày trong tuần không được viết hoa bằng tiếng Tây Ban Nha, phải không? –

+1

Đó là cùng một vấn đề trong nhiều ngôn ngữ khác, chẳng hạn như tiếng Bengal, tiếng Hy Lạp, tiếng Nga và v.v. – user1384668

Trả lời

4
echo ucwords(strftime("%Y %B %e, %A")); 
+1

Cho rằng 'strftime()' cung cấp một chuỗi ngày tháng đã bản địa hoá và một số bản địa hoá sử dụng các bộ ký tự nhiều byte, sẽ rất khôn ngoan để tính đến điều đó. Xem http://stackoverflow.com/questions/2517947/ucfirst-function-for-multibyte-character-encodings để biết ví dụ về cách viết hàm ucfirst() đa byte-ký tự an toàn. – Spudley

0
$ php -a 
Interactive shell 

php > $x = strftime("%Y %B %e, %A"); 
php > $str = explode(" ", $x); 
php > foreach ($str as $i) { print ucfirst($i) . " "; }; 
2012 June 3, Sunday 
php > 
0

Hãy thử phong cách đầu ra như thế này:

strftime('<span style="text-transform: capitalize;">%Y %B %e, %A</span>') 

hoặc

echo '<span style="text-transform: capitalize;">' . strftime('%Y %B %e, %A') . '</span>'; 

Bằng cách này bạn có thể chọn từ nào để viết hoa. Trong trường hợp của bạn ucwords công trình tôi đoán, vì bạn muốn tất cả các từ của bạn bắt đầu bằng chữ hoa.

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