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

Unable to convert date into the desired format like (Wed, Oct 21, 2015 at 13:04 PM)

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

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

就像 gmail 一样。

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

但还是无法解决我的问题。

请帮我解决这个问题。

试试这个:

<?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;
?>

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

您可以使用日期和时间格式化程序。鲜为人知的是 D 表示星期几的缩写,M 表示月份的缩写,j 表示不带前导 0 的天数。对于时间格式,您可以使用 g,这是不带前导零的 12 小时时间,A 表示大写的 Ante meridiem 和Post 子午线指示。 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);

使用转义并转化为函数:

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());

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

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

Returns 2015 年 11 月 4 日星期三 5:14 下午 看起来很正常。