【问题标题】:Php formatting datephp格式化日期
【发布时间】:2023-03-24 13:10:01
【问题描述】:

我正在尝试使用以下格式的 php 格式化日期。以下代码运行良好。

echo date_format('12/04/2014:14:58', "d/M/Y\tH:i");

我得到的格式是一个单引号字符串,下面的代码没有给出想要的输出。

echo date_format('12/04/2014:14:58', 'd/M/Y\tH:i');

有什么方法可以将单引号字符串转换为双引号字符串?

谢谢

【问题讨论】:

  • 您是否有类似$foo = 'd/M/Y\tH:i' 的内容未在您的问题中显示?
  • 是的,我在变量中获取格式。
  • 它到底提供了什么?有任何错误信息吗?
  • 12/04/2014t14:58。打印 t 而不是制表符。
  • 你试过这样str_replace( '\', '\\', $format ); 吗?

标签: php string date-format


【解决方案1】:

除了实际替换引号之外,不是真的。实际发生的是双引号实际上 change 字符串中的内容。具体来说,在双引号下,序列 "\t" 被转换为制表符符号,而在单引号下,它们被解释为文字序列 \t。

所以你可以做的是手动替换它们,像这样:

 str_replace( '\t', "\t", $format );

但首先将它们作为双引号输入会更容易。

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您可以按以下方式解决此问题:

    $format = 'd/M/Y\tH:i';
    $format = str_replace('\t', "\t", $format);
    echo date($format);
    

    你可以看到小提琴here

    【讨论】:

    • 我提到过,您的解决方案可以解决问题。但这并没有解决我真正的问题。我假设我从 oci 调用中得到了一个带引号的字符串。但即使使用字符串替换,它也不会起作用。
    • “oci 调用”是什么意思,能否显示更多代码?
    • 如果您只打印格式而不将其传递给date(),您会得到什么?
    • php > $format = str_replace('\t', "\t", $format); php > print_r(str_split($format)); Array ( [0] => d [1] => / [2] => M [3] => / [4] => Y [5] => [6] => H [7] => : [8] => i )
    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多