Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP转换日期字符串_Php_Date - Fatal编程技术网

使用PHP转换日期字符串

使用PHP转换日期字符串,php,date,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这是不正确的,是否有任何函数可以创建类似此格式的日期?有两种方法可以从字符串创建日期 1. date_create_from_format

我需要使用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
这是不正确的,是否有任何函数可以创建类似此格式的日期?

有两种方法可以从字符串创建日期

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

2. $date=new DateTime();
   $date=$date->createFromFormat("DATE_FORMAT", $dateString);
使用以下链接获取您的日期格式


有两种方法可以从字符串创建日期

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

2. $date=new DateTime();
   $date=$date->createFromFormat("DATE_FORMAT", $dateString);
使用以下链接获取您的日期格式


你可以像@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


因此,如果数字精度很重要,我认为你必须在那里做一些修改。

你可以像@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


因此,如果数字精度很重要,我认为您必须在那里进行一些修改。

通过函数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'); 
}
面向对象风格:

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'); 
}
日期格式可在以下链接中找到:


希望这有帮助

通过函数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'); 
}
面向对象风格:

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'); 
}
日期格式可在以下链接中找到:


希望这有帮助

echo(新日期时间('2016-04-05 00:00:00'))->格式('Y-m-d\TH:i:s.917\Z')
.917
是您发布日期的毫秒数。您的输入日期不包含有关毫秒的信息,您不应向其添加
.917
,而应附加
.000
或使用支持毫秒的函数()
echo(新日期时间('2016-04-05 00:00:00'))->格式('Y-m-d\TH:i:s.917\Z')
.917
是您发布日期的毫秒数。您的输入日期不包含有关毫秒的信息,您不应向其添加
.917
,而应附加
.000
或使用支持毫秒的函数()