2010-04-13 3 views
0

В Joomla всегда появлялась странная ошибка при добавлении новой статьи с фоновым изображением с языком, отличным от английского (для меня это русский). Поле «Finish Publishing» стало текущей, а не «никогда» эквивалентной на русском языке.Надежный strtotime() результат для разных языков

Для сайта в php4 наконец выяснилось, что функция strtotime возвращает разные результаты для произвольных слов. Для «Никогда» это всегда -1, и joomla полагается на этот результат в реализации JDate. Но в другом случае он иногда возвращает действительную дату. Для русского перевода Never (Никогда) это так, но и для одиночного «N» это так, поэтому, если кто-то решил изменить строку на какой-то другой, он или она столкнутся с той же проблемой.

Так код ниже

<?php 
     echo "Res:".strtotime("N")."<br>"; 
     echo "Res:".strtotime("Nev")."<br>"; 
     echo "Res:".strtotime("Neve")."<br>"; 
     echo "Res:".strtotime("Never")."<br>"; 
    ?> 

Выходы:

Res:1271120400 
    Res:-1 
    Res:-1 
    Res:-1 

Итак, что решения будут в этом случае? Я бы хотел, чтобы не писать обработчик date.php, специфичный для языка, но для изменения метода даты класса JDate, но для изменения недопустимой строки будут использованы изменения, не зависящие от языка.

Спасибо

+0

В чем вопрос вкратце? Какой результат вы хотите получить? Слово «Никогда» не похоже на разумное значение datetime. –

+0

Хорошо, я удивляюсь, почему другие нечувствительные ценности, такие как Never in russian, переведены на разумную дату, и не только русский, сингл «N». Я полагаю, что из-за какого-то преобразования по умолчанию – Maksee

ответ

1

Я бы попробовал другой aproach. Почему бы вам не попробовать добавить новую языковую переменную $example="-1" к вашим языковым файлам и заменить существующую переменную («Никогда») на $example, чтобы вы могли просто получить такую ​​же функциональность.

Смежные вопросы