我尝试过在SO中找到的各种答案,但我仍无法设定时间戳的日期,而且总是得到错误的结果。
我试过了:
$date = $this->loadTemplate('element'); //2014-02-27 15:03:00
list($year, $month, $day, $hour, $minute, $second) = split('[- :]', $date);
$timestamp = mktime((int) $hour, (int) $minute,(int) $second,(int) $month,(int) $day,(int) $year);
echo date("r", $timestamp);
我得到的结果是:
Wed, 02 Dec 2026 00:00:00 -0700
我在这里做错了什么?
修改
事实证明问题是由newline
生成的$date
。我从newlines
剥离了字符串,它就像一个魅力。
答案 0 :(得分:3)
$date = '2014-02-27 15:03:00';
echo date("r", strtotime($date));
// Outputs Thu, 27 Feb 2014 15:03:00 +0000
事实,如果您使用PHP 5.2及更高版本,请使用DateTime
。
$date = new \DateTime('2014-02-27 15:03:00');
echo $date->format("r");
// Outputs Thu, 27 Feb 2014 15:03:00 +0000
以下是展示它的ideone。
答案 1 :(得分:2)
$date = $this->loadTemplate('element'); //2014-02-27 15:03:00
list($year, $month, $day, $hour, $minute, $second) = split('[- :]', $date);
$timestamp = mktime($hour, $minute,$second,$month,$day,$year);
echo date("r", $timestamp);
你的mktime顺序错误见上文