Mam to zapytanie MySQL, które zwraca dwie daty (które są oba sformatowane jako a-m-Y). Teraz chcę przetłumaczyć tę datę na mój własny język (język duński). Jak mogę to zrobić. Próbowałem już zarówno funkcji setlocale(), jak i strftime(), ale to nie zadziała. Wiem, że to bardzo podstawowe pytanie, ale naprawdę potrzebuję pomocy. Wielkie dzięki!Zmień język dla daty w php
Odpowiedz
Nie sądzę, że funkcja date()
jest wystarczająco rozwinięta dla ciebie.
Zamiast tego, polecam spojrzeć w klasie IntlDateFormatter
(cytując):
Data Formatter jest beton klasy, która umożliwia zależne od ustawień lokalnych formatowania/parsowanie daty z użyciem wzorów sznurkowych i/lub konserwy wzorów.
Istnieje kilka przykładów na ręcznym stronie IntlDateFormatter::format()
, gdzie ta metoda służy do wyświetlania daty w dwóch różnych językach, po prostu ustawiając żądaną lokalizacyjnych.
1. dołączane do PHP> = 5,3
Zastosowanie setlocale
i strftime
razem:
setlocale(LC_TIME, array('da_DA.UTF-8','[email protected]','da_DA','danish'));
echo strftime("%A"); // outputs 'tirsdag'
działa na moim instalacji PHP na Windows.
Zastosowanie
http://php.net/manual/en/function.strftime.php
<?php
setlocale(LC_ALL, 'da_DA');
echo strftime("%A %e %B %Y");
?>
Jeśli próbujesz konwertować datetime
spróbuj tego:
$fecha = $dateConsulta->format('d-M-Y');
$fecha = str_replace('Jan','Ene',$fecha);
$fecha = str_replace('Apr','Abr',$fecha);
$fecha = str_replace('Aug','Ago',$fecha);
$fecha = str_replace('Dec','Dic',$fecha);
stwierdziliśmy, że setlocale
nie są wiarygodne, ponieważ jest on ustawiony na proces , a nie na wątek (w podręczniku wspomniano o tym). Oznacza to, że inne uruchomione skrypty mogą w każdej chwili zmienić ustawienia narodowe. Rozwiązaniem jest użycie IntlDateFormatter z rozszerzenia php intl
.
Install
intl
jeśli necesarry (ubuntu):sudo apt-get install php5-intl
Instalacja locale chcesz użyć (używam włoski jako przykład):
sudo locale-gen it_IT
Generowanie lokalnie sformatowaną datę :
$fmt = new \IntlDateFormatter('it_IT', NULL, NULL);
$fmt->setPattern('d MMMM yyyy HH:mm');
// See: http://userguide.icu-project.org/formatparse/datetime for pattern syntax
echo $fmt->format(new \DateTime());
// Output: 6 gennaio 2016 12:10
- 1. Zmień datę w PHP
- 2. Zmień format daty laravel 5
- 3. Zmień język na bootstrap DateTimePicker
- 4. Zmień język, w którym Geocoder.geocode() zwraca wyniki
- 5. Całkowicie zmień język IDE w Netbeans 6.8
- 6. Programista aplikacji Google: zmień domyślny język aplikacji
- 7. Zmień domyślny język sprawdzania pisowni firefox
- 8. Język skryptowy PHP lub język programowania?
- 9. Zmień format daty w aplikacji ASP.NET MVC
- 10. Język szablonowy a prosty PHP
- 11. PHP jako język programowania pulpitu
- 12. Odliczanie do daty PHP
- 13. odejmując dwie daty w php
- 14. zmiana formatu daty w php
- 15. Otrzymuj daty weekendowe w php
- 16. Wykryj język użytkownika w PHP - stabilne rozwiązanie
- 17. Język skryptowy dla systemu Windows?
- 18. Formatowanie daty PHP
- 19. Jak zmienić język i format daty w SQL Server?
- 20. PHP I SOAP. Zmień kopertę
- 21. Zmień kolejność klucze tablicy php
- 22. Zmień Return-Path w funkcji poczty PHP
- 23. Zmień ustawienia regionalne dla django-admin-tools
- 24. . Język Java dla programowania jednoczesnego
- 25. Uzyskiwanie "Zrobionej daty" zdjęcia zamiast "Zmodyfikowanej daty" z PHP exif_read_data
- 26. Data PHP ("I") dla przyszłej lub przeszłej daty
- 27. Jaki język w DrScheme dla SICP?
- 28. Dodawanie trzech miesięcy do daty w PHP
- 29. Jak sprawdzić poprawność daty MYSQL w PHP?
- 30. Jak porównać dwie daty w php
Tha t wygląda na skomplikowaną: D, okej, przyjrzę się temu. Nie mogę zrozumieć, że zmiana języka może być trudna :) – Emil
Cóż, musisz mieć "coś", co może wygenerować ciąg w odpowiednim języku - co oznacza znajomość słów, ich kolejności, ... i to nie jest łatwe zadanie. –