Answers:
strtotime将日期字符串设置为时间戳。您想做相反的事情,即date。典型的mysql日期格式是date('Y-m-d H:i:s');
检查手册页上其他字母代表什么。
如果您有要使用的时间戳(很明显是这样),则它是的第二个参数date()
。
echo date('m/d/Y', strtotime($current_date_variable);
$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);
结果:2016-06-07 14:29:00
其他时区:
如果使用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
$year = date('Y', $time)
我知道这是一个古老的问题,但是在搜索结果中却很高。
如果有人想将时间戳直接转换为DateTime对象,那么有一个简单的方法:
$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);
在@sromero注释之后,传递unix时间戳时将忽略时区参数(DateTime :: createFromFormat()中的第三个参数),因此不需要以下代码。
$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored
您可以查看PHP的DateTime :: createFromFormat手册以获得更多信息和选项。
试试吧。
<?php
$timestamp=1333342365;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>
您可以尝试以下方法:
$mytimestamp = 1465298940;
echo gmdate("m-d-Y", $mytimestamp);
输出:
2016/06/07
除非您需要自定义日期和时间格式,否则使用内置日期时间格式常量之一会更容易,更容易出错且更易读:
echo date(DATE_RFC822, 1368496604);
echo date("l M j, Y",$res1['timep']);
这对于将unix时间戳与日期一起转换为可读日期非常有用。示例:2016年7月7日,星期四
$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
在上面的示例中,“ 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