-2

我需要在 PHP 2013-07-31T09:06:02-0400 中将UNIX 时间戳转换为这种格式 我使用下面的代码创建 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);

谢谢。

4

2 回答 2

1

根据http://www.php.net/manual/en/function.date.phpdate()格式支持“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。生成“ISO 8601”日期字符串只需调用date('c').

此外,您可以操纵时间戳变量以抵消天/小时,然后将该变量提供给date()调用的第二个参数。

$timestamp = time();
$timestamp_with_offset = $timestamp + 3600; // an hour later
date('c', $timestamp_with_offset);
于 2013-08-01T06:01:22.450 回答
0

你的大部分代码都是多余的,你可以用很少的代码使用DateTime做你想做的事情:

$date = new \DateTime('now', new \DateTimeZone('Europe/Athens'));
echo $date->format(DATE_ISO8601);

我不知道你的时区是什么,我只是随机设置一个来说明我的答案。

看到它工作

于 2013-08-03T06:30:13.263 回答