使用PHP转换日期字符串

时间:2016-04-06 08:57:01

标签: php date

我需要使用PHP,

以类似bellow的格式转换日期字符串
2015-07-30T08:05:00.917Z

我尝试使用波纹管代码转换

echo str_replace('+00:00', '.917Z', gmdate('c', strtotime('2016-04-05 00:00:00')));

这将创建2016-04-05T00:00:00.917Z这不正确,是否有任何函数可以像这种格式一样创建日期?

3 个答案:

答案 0 :(得分:2)

有两种方法可以从String创建日期。

1. date_create_from_format
   $date=date_create_from_format("DATE_FORMAT",$dateString);

2. $date=new DateTime();
   $date=$date->createFromFormat("DATE_FORMAT", $dateString);

使用以下链接获取您的DATE_FORMAT。

http://php.net/manual/en/function.date.php

答案 1 :(得分:0)

你可以像@Alok在他的回答中提到的那样做。 或者类似地使用以下代码。

$date = DateTime::createFromFormat('U.u', microtime(TRUE));

echo $date->format('Y-m-d\TH:i:s.u\Z');

请注意,您问题中提到的微秒是3位数。但通常php日期格式输出精确到6位数的微秒。

与上面的代码输出一样 2016-04-06T09:24:50.830000Z

所以我认为如果数字精度很重要的话,你必须做一些黑客攻击。

答案 2 :(得分:0)

传递函数formatTime。这将在PHP中创建一个名为$ date的新DateTime对象,如果需要,也可以轻松地对其进行操作。下面的示例以两种不同的方式格式化日期,两者都有效。

程序风格:

function formatTime($millis) { 
        $date = new DateTime($millis); 
        return date_format($date, 'l, jS F Y \a\t g:ia'); 
}

面向对象的风格:

function formatTime($millis) { 
        $date = new DateTime($millis); 
        return $date->format('l, jS F Y \a\t g:ia'); 
}

可在此链接找到日期格式: http://php.net/manual/en/function.date.php

希望这会有所帮助。