【问题标题】:Explain some parameters of IntlDateFormatter's constructor解释一下 IntlDateFormatter 的构造函数的一些参数
【发布时间】:2014-10-29 13:02:41
【问题描述】:

我正在尝试更改我们在应用程序中格式化日期的方式(我们使用strftimestrtotime 等)以使用最新的IntlDateFormatter。我read the documentation,但我无法真正理解所有构造函数的参数。有人可以向我解释吗?这就是我现在的看法:

  • locale:我得到了这个:用于输出月份名称、日期名称等的语言环境。
  • datetype :我真的不明白它是干什么用的。是输入格式吗?为什么它仅限于几个常数? Doc 说 “要使用的日期类型” 日期类型是什么意思?
  • timetype:这个也一样,是什么?为什么它仅限于几个常数?文档说“要使用的时间类型”
  • timezone :我明白了,使用时区
  • calendar:我得到了这个:日历类型,大部分时间是公历
  • pattern :我希望格式化日期的实际模式

所以,是datetypetimetype 我不太明白它的用途。

【问题讨论】:

    标签: php datetime internationalization date-format


    【解决方案1】:

    这些标志指定要输出多少关于日期/时间的信息。 documentation about the constants used 比您在问题中链接的内容更深入。

    所以基本上如果datetype 设置为IntlDateFormatter::LONG,则输出应为January 12, 1952,或者如果设置为IntlDateFormatter::MEDIUM,则输出应为Jan 12, 1952

    【讨论】:

    • 对不起,我不认为是这样。如果我将datetype 设置为IntlDateFormatter::SHORT,但我的模式设置为cccc MMMM d y 它输出:Sunday January 26 2014 所以它似乎对输出没有影响。
    • @MaxiWheat 该模式将覆盖datetypetimetype 设置。如果您删除您的模式,它将按预期工作。如果您的模式是您希望格式化时间戳的方式,那么就不要使用datetypetimetype 设置。
    • 谢谢,如果没有指定模式,这些参数是“默认格式”并不明显。
    • @MaxiWheat 我很清楚你的感受。不止一次,我发现自己在修改代码以了解 PHP 将如何做某事。很高兴能帮到你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多