我需要在PHP中将UNIX时间戳转换为此格式 2013-07-31T09:06:02-0400 我使用下面的代码创建UNIX时间戳,以从当前的时间戳获取第二天的UNIX时间戳。
$localtime = time();
$hour = gmdate("H",$localtime);
$minute = gmdate("i",$localtime);
$second = gmdate("s",$localtime);
$month = gmdate("n",$localtime);
$day = gmdate("j",$localtime); $day = $day + $timestamp;
$year = gmdate("Y",$localtime);
$createtimestamp = gmmktime ($hour, $minute,$second,$month,$day,$year);
感谢。
答案 0 :(得分:1)
根据http://www.php.net/manual/en/function.date.php,date()
格式支持'c',即ISO 8601格式。
c ISO 8601 date (added in PHP 5) 2004-02-12T15:19:21+00:00
您的代码可以简化为:
date('c'); // using current UNIX timestamp by omitting second parameter
修改
您想要获得的是'ISO 8601'格式字符串,而不是时间戳,这是 int 。只需调用date('c')
即可生成“ISO 8601”日期字符串。
此外,您可以操纵时间戳变量来抵消天/小时,然后将变量提供给date()
来电的第二个参数。
$timestamp = time();
$timestamp_with_offset = $timestamp + 3600; // an hour later
date('c', $timestamp_with_offset);
答案 1 :(得分:0)
您的大多数代码都是多余的,您可以使用DateTime以非常少的代码执行您想要的操作:
$date = new \DateTime('now', new \DateTimeZone('Europe/Athens'));
echo $date->format(DATE_ISO8601);
我不知道你的时区是什么,我只是随意设置一个来说明我的答案。