【问题标题】:Reliable strtotime() result for different languages不同语言的可靠 strtotime() 结果
【发布时间】:2011-02-07 11:02:11
【问题描述】:

在添加新文章时,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 类的 date 方法,但是为了检测无效字符串,语言中立的更改是什么。

谢谢

【问题讨论】:

  • 简而言之是什么问题?你想得到什么结果? “从不”这个词似乎不是任何合理的日期时间值。
  • 好的,我想知道为什么其他不合理的值(如俄语中的 Never)被翻译为合理的日期,不仅是俄语,单“N”也是如此。我想是由于出现了一些默认转换

标签: php datetime joomla php4


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多