php - Carbon 解析日期格式

标签 php laravel date datetime php-carbon

我正在尝试解析格式如下的日期:

2017-09-20T10:59:10.0000000 01:00

我正在使用 Carbon,所以我尝试了:

Carbon::createFromFormat('Y-m-dTH:i:s.u vP', $date)

哪个输出:

The timezone could not be found in the database\n
Unexpected data found.\n
Data missing

我猜最后一个时区参数可能是错误的,但我找不到如何解析该日期格式:/

感谢您的帮助!

最佳答案

您需要为时区添加一个标志,例如:

+01:00

那么这对你有用:

Carbon::createFromFormat('Y-m-d\TH:i:s.0000000 P', $date)

如果您的字符串可以有 -01:00 但您得到的不是 +01:00 01:00,请执行此操作第一:

$timezone = str_after($date, ' ');
if ($timezone[0] !== '-') {
    $date = str_before($date, ' ') . ' +' . $timezone;
}

关于php - Carbon 解析日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49006071/

相关文章:

php - nginx "server"指令具有多个 "server_name"条目 : always first one is passed to PHP's $_SERVER ['SERVER_NAME' ]

php - Laravel 5.1 左连接别名在同一张表上发出两个外键

c# - 如何以格式 23 :59:59 转换日期时间

java - 为什么前端传递的日期与后端(Java)中传递的日期不一样(以毫秒为单位)

php - 使用 PHP 或 JavaScript 通过 HTML 表单提交传递 URL 变量

php - mysql如何对两行进行求和和相乘

php - 当我尝试在我的项目 laravel 6.x 上使用 redis 时,它显示此错误消息

php - Laravel 请求按名称合并

php - 如何在 PHP 查询代码中使用 MySQL 函数?

php - 我如何确保 PHP json_encode 将对我从数据库读取的任何数据进行编码?