如何创建易于阅读的时间戳?

15
在我的PHP程序中,我正在使用$_SERVER来记录页面的访问日期:
$dateStamp = $_SERVER['REQUEST_TIME'];

结果是$dateStamp变量包含类似于Unix时间戳的值:

1385615749

什么是将其转换为可读的日期/时间(包括年、月、日、小时、分钟、秒)的最简单方法?

strtotime函数可以吗? - Surabhil Sergy
你可以修改WordPress中优秀的human_time_diff函数。 - Burhan Khalid
有人能验证一下我选择的答案是否正确吗? - user4951
6个回答

35
这个数字被称为Unix时间。像date()这样的函数可以将其作为可选的第二个参数接受,以便将其格式化为可读的时间。
示例:
echo date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']);

如果省略第二个参数,将使用当前的time()值。
echo date('Y-m-d H:i:s');

1
这似乎是最简单的一个。 - user4951
PHP看起来像这样 <php? Date('Y-m-d H:i:s', ['timestamp']) ?> - Dung

2
您将时间戳转换为可读格式的功能方法如下:
function convertDateTime($unixTime) {
   $dt = new DateTime("@$unixTime");
   return $dt->format('Y-m-d H:i:s');
}

$dateVarName = convertDateTime(1385615749);

echo $dateVarName;

输出:

2013-11-28 05:15:49

Working Demo


@JimThio,Roopenda:@符号不是用于抑制错误的。它是DateTime使用的Unix时间戳的格式说明符。如果它真的可以抑制错误,那将是一个不好的想法。 - Boann
@Roopenda 我并不是让你把它移除。现在你已经移除了,代码将完全无法工作。 - Boann
@Boann 谢谢你更新我。我以为我做错了什么。 - Roopendra

1
<?php
$date = new DateTime();

$dateStamp = $_SERVER['REQUEST_TIME'];

$date->setTimestamp($dateStamp);

echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

1

you can try this

<?php
$date = date_create();
$dateStamp = $_SERVER['REQUEST_TIME'];
date_timestamp_set($date, $dateStamp);
echo date_format($date, 'U = D-M-Y H:i:s') . "\n";
?>

我有所怀疑,你为什么要同时使用date_create和date_timestamp_set? - user4951
5
$date = date_create(); 生成一个新的DateTime对象,date_timestamp_set(); 根据Unix时间戳设置日期和时间。 - user3041094

0

REQUEST_TIME - 它是 Unix 时间戳 - 请求开始时的时间戳。

$dateStamp = $_SERVER['REQUEST_TIME'];
echo date('d m Y', $dateStamp);

或者

$date = new DateTime($dateStamp);
echo $date->format('Y-m-d');

0

这段代码将适用于您

$dateStamp = $_SERVER['REQUEST_TIME'];

echo date('d-M-Y H:i:s',strtotime($dateStamp));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接