【问题标题】:PHP - Use function for one key in arrayPHP - 对数组中的一个键使用函数
【发布时间】:2016-01-24 15:11:30
【问题描述】:

我正在创建一个简单的博客脚本,但遇到了这个问题:

在 MySQL 中,我将 PostDate 保存为 TIMESTAMP,当我从 MYSQL 中选择时,PostDate 看起来像这样 2015-10-25 13:53:35,但我想将此时间戳转换为 H:M D-M-Y。我创建了一个用于转换的函数,但我不知道如何将它用于数组中的键 PostDate。正是我想将数组中的所有 PostData 键重写为新格式。我知道如何使用 foreach 循环来做到这一点,但我不能这样做,因为我使用 Smarty 模板引擎。

转换时间戳():

public function ConvertTimestamp($Timestamp)
{
  $TimeDate = explode(' ', $Timestamp);
  $Date = explode('-', $TimeDate['0']);
  $Date = $Date[2].'-'.$Date['1'].'-'.$Date['0'];
  $Time = explode(':', $TimeDate['1']);
  $Time = $Time['0'].':'.$Time['1'];
  $TimeDate = $Time.' '.$Date;
  return $TimeDate;
}

【问题讨论】:

  • 一段极其复杂的字符串操作:你为什么不简单地使用 PHP 的内置日期或 DateTime 对象函数,你可以让它简单的两行代码,甚至更容易改变您对将来可能要使用的格式的想法
  • public function ConvertTimestamp($dateTimeValue, $format='H:i d-M-Y') { $dto = new DateTime($dateTimeValue); return $dto->format($format); }
  • 非常感谢这个简单的代码!

标签: php mysql arrays timestamp


【解决方案1】:

这种格式2015-10-25 13:53:35 称为datetime 格式而不是TIMESTAMP。

但无论如何,要将日期时间转换为您想要的任何格式,您都可以在 mysql 端执行此操作。假设您从中选择数据的表名为“test_table”,并且该表中有一个名为 PostDate 的日期时间字段,您希望将其转换为此格式 H:M D-M-Y(其中是你想要的),你可以做如下查询:

SELECT DATE_FORMAT(PostDate,'%H:%M %D-%M-%Y') FROM `test_table`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 2021-09-07
    • 1970-01-01
    • 2018-12-01
    相关资源
    最近更新 更多