4

你们中的大多数人可能会发现这个重复的(几乎)问题,但我无法在所有这些讨论中找到我想要的解决方案。

我在mysql数据库中有一个类型= DATETIME的列,它将时间保存为2013-08-21 20:26:12。

现在,我可以按原样回显它,即 2013-08-21 20:26:12 在 PHP 页面上,但我想以以下格式回显它:

  1. 8 月 21 日
  2. 2013 年 8 月 21 日
  3. 2013 年 8 月 21 日,星期三,晚上 8:26

请指示我是否可以在从数据库中获取时间并应用一些 PHP 函数后完成此操作,或者我们可以在从数据库中获取时间时执行此操作?如何?

谢谢

** 更新:或者如果我可以使用 date() 生成时间;在 php 中并将其作为 TIME 存储在 mysql 数据库中,以便我们可以对其进行时间查询,例如搜索等

4

5 回答 5

14

用于strtotime()将您的时间字符串转换为时间戳,然后使用date()函数将其转换为所需的格式。

$str = '2013-08-21 20:26:12';
echo date('d M ', strtotime($str));
echo date('d M Y', strtotime($str));
echo date('g:i A, l - d M Y', strtotime($str));

输出:

21 Aug 
21 Aug 2013
8:00 PM, Wednesday - 21 Aug 2013

那应该让你开始。有关更多选项,请参阅date()函数文档。

演示!

于 2013-08-21T17:41:01.607 回答
2

请指示我是否可以在从数据库中获取时间并应用一些 PHP 函数后完成此操作,或者我们可以在从数据库中获取时间时执行此操作?如何?

  1. DATE_FORMAT()在 MySQL 中使用:

    SELECT DATE_FORMAT(my_column, '%D %b'                   ) FROM my_table;
    SELECT DATE_FORMAT(my_column, '%D %M, %Y'               ) FROM my_table;
    SELECT DATE_FORMAT(my_column, '%l:%i %p, %W - %D %M, %Y') FROM my_table;
    
  2. date()在 PHP 中使用:

    date('jS M',               $ts);
    date('jS F, Y',            $ts);
    date('g:i A, l - jS F, Y', $ts);
    

    (使用类似or$ts的东西从字段值创建where )。strtotime()UNIX_TIMESTAMP()

于 2013-08-21T17:38:47.337 回答
2
21st Aug
21st August, 2013
8:26 PM, Wednesday - 21st August, 2013



$date="2013-08-21 20:26:12";

date("jS M",strtotime($date));
date("jS F, Y",strtotime($date));
date("h:i A, l - jS F, Y",strtotime($date));
于 2013-08-21T17:46:49.943 回答
0
$Date = strtotime($FetchedDate);
$NewDate = date($format, $Date);

为了能够创建自己的格式,请看这里: http: //php.net/manual/en/function.date.php

于 2013-08-21T17:42:46.113 回答
0

DateTime类和日期格式选项将帮助您:-

$dateStr = '2013-08-21 20:26:12';
$date = new \DateTime($dateStr);
echo $date->format('dS M');
echo $date->format('dS F, Y');
echo $date->format('h:i A l - dS F, Y');

输出:-

2013 年8 月
21 日 2013 年8 月 21 日
08:26 PM 星期三 - 2013 年 8 月 21 日

工作示例

于 2013-08-21T19:27:40.477 回答