Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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_Laravel_Datetime - Fatal编程技术网

PHP-将字符串转换为中的日期

PHP-将字符串转换为中的日期,php,laravel,datetime,Php,Laravel,Datetime,我得到一个字符串,如2016年9月28日星期三01:00:00 GMT+0500(PKT),我需要将其转换为2016-09-28 01:00:00 我试过这个 $startTime = strtotime($updatedData['start']); echo $time = date("Y-m-d H:i:s",$startTime); 但是它返回给我2016-09-27 20:00:00试试这个: $startTime = strtotime($updatedData['star

我得到一个字符串,如2016年9月28日星期三01:00:00 GMT+0500(PKT),我需要将其转换为2016-09-28 01:00:00 我试过这个

$startTime   = strtotime($updatedData['start']);
echo $time = date("Y-m-d H:i:s",$startTime);
但是它返回给我2016-09-27 20:00:00

试试这个:

$startTime   = strtotime($updatedData['start']);
$time = date("Y-m-d H:i:s",$startTime);
echo date( "Y-M-d H:i:s", strtotime( $time) + 5 * 3600 );
它返回UTC时间,您确实需要在其中添加5小时。这也是一个快速的建议。您可以使用碳来处理日期时间。

尝试以下方法:

$startTime   = strtotime($updatedData['start']);
$time = date("Y-m-d H:i:s",$startTime);
echo date( "Y-M-d H:i:s", strtotime( $time) + 5 * 3600 );

它返回UTC时间,您确实需要在其中添加5小时。这也是一个快速的建议。您可以使用碳来处理日期时间。

您可以在转换之前设置所需的时区。请参阅以下代码作为参考

date_default_timezone_set("Asia/Bangkok");
$str = 'Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)';
$startTime   = strtotime($str);
echo $time = date("Y-m-d H:i:s",$startTime);

您可以在转换之前设置所需的时区。请参阅以下代码作为参考

date_default_timezone_set("Asia/Bangkok");
$str = 'Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)';
$startTime   = strtotime($str);
echo $time = date("Y-m-d H:i:s",$startTime);

您可以将其更改为使用
DateTime

$startTime = new DateTime('Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)');
echo $startTime->format('Y-m-d H:i:s');
DateTime保留你给他的时区


实例:

您可以将其更改为使用
DateTime

$startTime = new DateTime('Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)');
echo $startTime->format('Y-m-d H:i:s');
DateTime保留你给他的时区


活生生的例子:

@copynpaste解决方案很好,很简单,但我仍然会使用碳来分享我的解决方案

Carbon是与laravel一起提供的一个库,以下是

结果将与DateTime相同

2016-09-28 01:00:00
所以,碳的好处是,你可以通过一个非常简单的代码添加天、分钟、秒等,下面是一个例子:

$carbon->addDays(1);
echo $carbon;

//result
2016-09-29 01:00:00

@copynpaste解决方案很好,很直接,但我仍然会使用碳来分享我的解决方案

Carbon是与laravel一起提供的一个库,以下是

结果将与DateTime相同

2016-09-28 01:00:00
所以,碳的好处是,你可以通过一个非常简单的代码添加天、分钟、秒等,下面是一个例子:

$carbon->addDays(1);
echo $carbon;

//result
2016-09-29 01:00:00

这是因为时区的原因,时间是+5,但结果是+0。请检查您的时区您的输出日期是GMT。因此,请设置时区并运行脚本在开始转换之前设置时区<代码>日期\默认\时区\设置(“亚洲/帝力”),并使用格式转换。对于格式使用例如:
DateTime::createFromFormat('j-M-Y','15-Feb-2009');echo$date->format('Y-m-d')这是因为时区,时间是+5,但结果是+0。检查您的时区您的输出日期是GMT。因此,请设置时区并运行脚本在开始转换之前设置时区<代码>日期\默认\时区\设置(“亚洲/帝力”)
,并使用格式转换。对于格式使用例如:
DateTime::createFromFormat('j-M-Y','15-Feb-2009');echo$date->format('Y-m-d')确切地说我需要什么确切地说我需要什么+1我更喜欢这个答案,因为这个问题被标记为laravel,这个答案给出了一种使用碳的方法。+1我更喜欢这个答案,因为这个问题被标记为laravel,这个答案给出了一种使用碳的方法。