将时间戳转换为可读的日期/时间PHP

Ada*_*ski 214 php

我有一个存储在会话中的时间戳(1299446702).

如何将其转换为PHP中的可读日期/时间?我试过srttotime等无济于事.

Roc*_*mat 381

使用PHP的date()功能.

例:

echo date('m/d/Y', 1299446702);
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 PHP 访问 https://www.epochconvert.com/programming/php 获取人类可读日期的纪元或时间戳。 (2认同)

Exp*_*lls 81

strtotime将日期字符串转换为时间戳.你想做相反的事情,即约会.典型的mysql日期格式是date('Y-m-d H:i:s'); 检查手册页中其他字母代表的内容.

如果你有一个你想要使用的时间戳(显然你这样做),它是第二个参数date().

  • 我会按照以下方式传递当前日期:`echo date('m/d/Y',strtotime($ current_date_variable);; (4认同)

Raz*_*aul 61

我刚刚把H:i:s添加到Rocket的答案中,以便得到时间和日期.

echo date('m/d/Y H:i:s', 1299446702);
Run Code Online (Sandbox Code Playgroud)

输出:03/06/2011 16:25:02


Sta*_*uzh 44

$timestamp = 1465298940;
$datetimeFormat = 'Y-m-d H:i:s';

$date = new \DateTime();
// If you must have use time zones
// $date = new \DateTime('now', new \DateTimeZone('Europe/Helsinki'));
$date->setTimestamp($timestamp);
echo $date->format($datetimeFormat);
Run Code Online (Sandbox Code Playgroud)

结果:2016-06-07 14:29:00

其他时区:


Rah*_*ich 21

如果您使用的是php date(),则可以使用此代码获取日期,时间,秒等.

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds
Run Code Online (Sandbox Code Playgroud)

  • 闰年和第二年怎么样? (11认同)

小智 14

试试这个:

echo date('m/d/Y H:i:s', 1541843467);
Run Code Online (Sandbox Code Playgroud)


小智 13

试试吧.

<?php
 $timestamp=1333342365;
 echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
 ?>
Run Code Online (Sandbox Code Playgroud)


Pas*_*cal 12

我知道这是一个古老的问题,但它在搜索结果中很高.

如果有人想要将时间戳转换直接转换为DateTime对象,那么有一个简单的单线程:

$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);
Run Code Online (Sandbox Code Playgroud)

在@sromero注释之后,当传递unix时间戳时,将忽略timezone参数(DateTime :: createFromFormat()中的第3个参数),因此下面的代码是不必要的.

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored
Run Code Online (Sandbox Code Playgroud)

您可以查看PHP的DateTime :: createFromFormat手册以获取更多信息和选项.


SM *_*ain 12

$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,"r" 和 "Ymd H:i:s" 是 PHP 日期格式,其他例子:

格式输出

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
Run Code Online (Sandbox Code Playgroud)


bis*_*hop 8

除非您需要自定义日期和时间格式,否则使用其中一个内置日期时间格式常量会更容易,更不容易出错,并且更具可读性:

echo date(DATE_RFC822, 1368496604);
Run Code Online (Sandbox Code Playgroud)

  • 这应该是最好的答案. (2认同)

小智 7

你可以试试这个:

   $mytimestamp = 1465298940;

   echo gmdate("m-d-Y", $mytimestamp);
Run Code Online (Sandbox Code Playgroud)

输出:

2016年6月7日


小智 5

echo date("l M j, Y",$res1['timep']);
这对于将 unix 时间戳转换为可读日期以及日期非常有用。示例:2016 年 7 月 7 日星期四


小智 5

echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);
Run Code Online (Sandbox Code Playgroud)