无法将日期转换为所需的格式,如(2015年10月21日星期三下午13:04)

时间:2015-10-21 20:06:55

标签: php date format

我正在尝试将当前日期转换为以下格式:

实施例: 2015年10月21日星期三下午13:04

就像gmail一样。

我在互联网上搜索了很多,但没有任何帮助。我还研究了以下链接, http://php.net/manual/en/datetime.formats.date.php

但仍然无法解决我的问题。

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

您可以使用日期和时间格式化程序。鲜为人知的是D表示一周中的缩写日期,M表示缩写的月份,j表示没有前导0的日期编号。对于时间格式,您可以使用g,即12小时时间不带前导零和A表示大写Ante meridiem和发布meridiem指示。各种字母及其含义列于documentation page of the date() function

您需要通过为每个字符添加反斜杠来转义at的字符。或者您可以选择分两步进行格式化:

 echo date( 'D, M j, Y') . ' at ' . date('g:i A');

对于特定时间戳:

$timestamp = time();
echo date( 'D, M j, Y', $timestamp) . ' at ' . date('g:i A', $timestamp);

使用转义和poored成函数:

function gmail_date($timestamp = null) {
  // Allow passing no time, just like date() does.
  if ($timestamp === null) $timestamp = time();

  return date( 'D, M j, Y \a\t g:i A', $timestamp);
}

echo gmail_date(time());

答案 1 :(得分:1)

试试这个:

<?php
date_default_timezone_set('America/Los_Angeles');
$time = strtotime(Date('Y-m-d H:i:s'));
$month=date("F",$time);
$year=date("Y",$time);
$day=date("d",$time);
$hour=date("H",$time);
$minute=date("i",$time);
$x=date("A",$time);
$final=substr(date("l"),0,3).", ".substr($month,0,3)." ".$day.", ".$year." at ".$hour.":".$minute." ".$x;
echo $final;
?>

您将获得所需的输出。 :)

答案 2 :(得分:1)

查看PHP Date函数以获取格式提示。

echo date('D, M j, Y \a\t g:i A', strtotime('+2 weeks 1 hour'));

返回 2015年11月4日星期三下午5:14 ,看起来非常合法。