可靠的strtotime()结果适用于不同的语言

时间:2010-04-13 13:21:31

标签: php datetime joomla php4

在添加新文章时,Joomla总是有一个奇怪的错误,后端显示的语言不是英语(对我来说是俄语)。 “完成发布”字段开始是当前日期,而不是俄语中的“从不”等效字段。

对于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类的日期方法,但是为了检测无效的字符串,什么是语言中性的更改。

谢谢

1 个答案:

答案 0 :(得分:1)

我会尝试不同的方法。 为什么不尝试将新的语言变量$example="-1"添加到语言文件中,并将现有变量(“Никогда”输出)替换为$example,这样您就可以获得相同的功能。