【问题标题】:Carbon date bug on php 7.0php 7.0 上的碳日期错误
【发布时间】:2018-03-10 22:43:25
【问题描述】:

我在 PHP 7.0.24 上的 composer 包照明/数据库和 Carbon 遇到问题。

有时php会产生以下异常

Fatal error: Uncaught Exception: DateTime::__construct(): Failed to parse time string (2018-03-09 16:56:16.-51861) at position 24 (6): Unexpected character in /volume1/web/octopus/vendor/nesbot/carbon/src/Carbon/Carbon.php:413
Stack trace:
#0 /volume1/web/octopus/vendor/nesbot/carbon/src/Carbon/Carbon.php(413): DateTime->__construct('2018-03-09 16:5...', Object(DateTimeZone))
1 /volume1/web/octopus/global_bootstrap.php(48): Carbon\Carbon->__construct()
2 /volume1/web/octopus/app/bootstrap.php(8): require_once('/volume1/web/oc...')
3 /volume1/web/octopus/app/dashboard.php(8): require('/volume1/web/oc...')
4 {main}
thrown in /volume1/web/octopus/vendor/nesbot/carbon/src/Carbon/Carbon.php on line 413

如果我只创建一个不带任何参数的 Carbon 实例

<?php
// ...composer initialization...
$carbon = new \Carbon\Carbon();
var_dump($carbon);

在深入研究 Carbon-class 之后,有一个 if 子句适用于低于 7.1 的 php 版本,它在字符串格式的日期后面添加了微时间,但为什么呢?

对于低于 7.1 的 php 版本是否存在 carbon 漏洞?

【问题讨论】:

标签: php date php-carbon


【解决方案1】:

我通过在我的 php 脚本顶部添加两行来解决我的问题:

<?php
date_default_timezone_set('Europe/Berlin');
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
// ....
$carbon = new \Carbon\Carbon();
var_dump($carbon);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2021-04-02
    • 2017-10-15
    相关资源
    最近更新 更多