【问题标题】:strftime() : bool(false) not showing nothingstrftime() : bool(false) 什么都不显示
【发布时间】:2013-02-22 13:28:31
【问题描述】:

我想以这种格式在我的页面上显示当前日期:22/02/2013 - 12:00(日/月/年 - 小时)

我使用strftime("%d/%b/%G - %R", time()),但页面上没有显示任何内容。如果我这样做了

echo var_dump(strftime("%d/%b/%G - %R", time()))

它显示 bool(false)。知道我做错了什么吗??

【问题讨论】:

    标签: php strftime


    【解决方案1】:

    Windows doesn't support %G or %R,您应该分别使用%Y%H:%M

    strftime("%d/%b/%Y - %H:%M")
    

    【讨论】:

    • 是不是也可以根据本地时间来设置时间??我该怎么做??
    • 什么意思?谁的当地时间?
    • @Lykos 你的意思是date_default_timezone_set()
    • 我需要更多帮助。我有 strftime 在

      里面,我想做的是添加一些 ajax。如何在我的 jquery .load() 函数中应用 strftime 函数???

    • @Lyk 那应该是另一个问题。
    【解决方案2】:

    来自strftime() documentation

    由于输出依赖于底层 C 库,因此不支持某些转换说明符。在 Windows 上,提供未知的转换说明符将导致 5 个 E_WARNING 消息并返回 FALSE。在其他操作系统上,您可能不会收到任何 E_WARNING 消息,并且输出可能包含未转换的转换说明符。

    所以,您可能使用了不受支持的格式参数。

    注意:默认情况下time() 用于时间戳,因此如果您需要此默认tiemstamp,可以使用strftime()

    【讨论】:

    • @Jack 依赖于底层C库,每个操作系统不同。未提供此信息,因此我无法详细说明...
    • " 仅限 Windows:此函数的 Windows 实现不支持 %e 修饰符。要达到此值,可以使用 %#d 修饰符代替。下面的示例说明了如何编写跨平台兼容功能。%z 和 %Z 修饰符都返回时区名称,而不是偏移量或缩写。“我不明白。只有这里说的参数在 Windows 中是不支持还是不支持???
    • 不仅是那些,在同一个手册页上写着“这意味着 %e、%T、%R 和 %D(可能还有其他)——以及 1 月 1 日之前的日期, 1970 - 无法在 Windows、某些 Linux 发行版和其他一些操作系统上运行”
    • 是的,但也有人说它取决于底层的 C 库......你最好的办法是尝试找出哪个修饰符不起作用,在你的代码工作之前删除一个修饰符...
    【解决方案3】:

    试试这个:

    echo date('d/m/Y - H:s');
    

    如果需要,可以这样设置时区:

    date_default_timezone_set('UTC');
    

    【讨论】:

    • date() 不区分区域设置。
    • @OgunAcik 请不要通过添加其他详细信息来修改其他用户的帖子,而是使用评论指出这些其他详细信息,以便 OP 确定是否更新他的发布(如果他同意)
    • 我同意并自己添加了更改,感谢@OgunAcik 的建议,最好先在 cmets 中提出建议,正如 Veger 所说! :)
    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多