【问题标题】:Changing date format from array in PHP [duplicate]从PHP中的数组更改日期格式[重复]
【发布时间】:2014-10-24 03:54:52
【问题描述】:

我从以下格式的数组中收到日期:

2014-10-22 07:24:57 EDT

我想将其转换为仅回显月份和日期,如下所示:Oct 22

当我从 15-Feb-2009 格式更改时,下面的代码可以正常工作。

<?php

$date = DateTime::createFromFormat('D-M-Y', '15-Feb-2009');
$nice_date = $date->format('M j');

echo $nice_date;

?>

这就是我所拥有的不起作用的东西。可能还没有接近。

$array_date = '2014-10-22 07:24:57 EDT';
$date = DateTime::createFromFormat('YY-MM-DD HH:II:SS EDT', $array_date);
$nice_date = $date->format('M j');

echo $nice_date;

我现在很茫然。有什么想法吗?

【问题讨论】:

  • 你不能只猜测格式字母。阅读the documentation。格式'2014-10-22 07:24:57 EDT'对应PHP格式字符串'Y-m-d H:i:s e'
  • 这是标准的日期时间格式,不用猜,直接用new DateTime(),像这样demo

标签: php arrays date datetime


【解决方案1】:

如果要明确提供格式,则必须提供正确的格式。

$array_date = '2014-10-22 07:24:57 EDT';
$date = DateTime::createFromFormat('Y-m-d H:i:s e', $array_date);
$nice_date = $date->format('M j');
echo $nice_date;

【讨论】:

  • 谢谢@ghost 考虑到我的技能水平,我想我已经比较接近了。喜欢这个网站。
  • @Torads 如需更多参考,请咨询manual,它有所有含义的映射。很高兴这有帮助
【解决方案2】:
$str = "2014-10-22 07:24:57 EDT";

echo date("M d", strtotime($str)); // Oct 22

【讨论】:

  • 效果很好。谢谢。我现在有选择
【解决方案3】:

尝试关注(我使用了datestrtotime):

$originalDate = "2014-10-22 07:24:57 EDT";
$newDate = date("M j", strtotime($originalDate));
echo $newDate;

【讨论】:

    【解决方案4】:

    $array_date = '2014-10-22 07:24:57 EDT'; $date = DateTime::createFromFormat('YY-MM-DD HH:II:SS EDT', $array_date); $nice_date = date('M d',$date); echo $nice_date;

    【讨论】:

    猜你喜欢
    • 2015-03-30
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2016-08-16
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多