سؤال

محاولة عرض الوقت الحالي باستخدام 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

  1. cd /usr/share/locales
  2. sudo ./install-language_pack ru_RU
  3. sudo dpkg-reconfigure locales
  4. أعد تشغيل أباتشي

بعد ذلك، استخدم مقتطف PHP التالي:

setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());

ينبغي إخراج يوم اليوم من الأسبوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top