توطين الوقت الحالي في PHP
-
07-07-2019 - |
سؤال
محاولة عرض الوقت الحالي باستخدام PHP (باستخدام هذا):
$date = date('m/d/Y h:i:s a', time());
echo $date;
سهلة المنال.كيف يمكنني توطينها؟أريد ترجمة الأشهر والأيام إلى اللغة العبرية.
شكرًا.
المحلول
Zend_Date
هو تدويل تماما. يجب عليك التحقق من ذلك عن وسيلة بسيطة للقيام بذلك:
وجميع الأسماء الكاملة والمختصرة لل ويدعم أشهر وأيام الأسبوع ل أكثر من 130 لغة. طرق دعم كل من المدخلات والمخرجات من التواريخ باستخدام أسماء المترجمة من أشهر وأيام الأسبوع، في شكل التقليدي المرتبط كل لغة.
اقتباس فقرة>نصائح أخرى
في الواقع، أنا لا أعتقد أنه من الممكن تماما في PHP 5.2: - (
وعلى الأقل، وليس مع ما واحدة مع / في PHP <م> (هناك مكتبات مشفرة في PHP التي يمكن استخدامها، على الرغم من مثل أشارت إجابات أخرى خارج) م>
و
مع PHP 5.3، على الرغم من أن لديك IntlDateFormatter الطبقة، التي لا بالضبط ما تريد:
وهذه الفئة تمثل تاريخ ICU وظائف التنسيق. تسمح للمستخدمين لعرض التواريخ في المترجمة تنسيق أو تحليل السلاسل في PHP قيم التاريخ باستخدام السلاسل نمط و / أو أنماط المعلبة.
اقتباس فقرة>وعلى سبيل المثال، وذلك باستخدام تلك الفئة، مثل هذا:
echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";
echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";
echo IntlDateFormatter::create('en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('en_US', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";
وأنت تريد الحصول على:
dimanche 9 novembre 2008 23:54:47 GMT+00:00
9 nov. 2008 23:54
2008年11月9日星期日 下午11時54分47秒 GMT+00:00
2008/11/9 下午 11:54
Sunday, November 9, 2008 11:54:47 PM GMT+00:00
Nov 9, 2008 11:54 PM
والتي تبدو لطيفة جدا، أليس كذلك؟
والأمر المحزن هو PHP 5.3 ليست سوى بضعة أشهر من العمر، والتي لا تتوافر في كثير من خدمات الاستضافة ... وسوف تتطلب اختبار (وربما إصلاح) للتطبيق الخاص بك ...
و
التفكير فيه: ربما يمكنك تثبيت PECL تمديد إينتل على PHP 5.2، رغم ذلك، والحصول على نفس functionnality ...
إذا كنت تريد طريقة أكثر بساطة من Zend_Date وIntlDateFormatter، فجرّب الطريقة القياسية strftime
وظيفة في PHP.إليك الأشياء التي قمت بها لتشغيله باستخدام اللغة الروسية التي تعمل بـ php 5.3 على Ubuntu (لم يتم تثبيت اللغة الروسية).
لتثبيت locally
cd /usr/share/locales
sudo ./install-language_pack ru_RU
sudo dpkg-reconfigure locales
- أعد تشغيل أباتشي
بعد ذلك، استخدم مقتطف PHP التالي:
setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());
ينبغي إخراج يوم اليوم من الأسبوع.