php - PHP 5.2.14 的日期时间::CreateFromFormat

标签 php mysql datetime timestamp

我使用以下代码将用户输入转换为 mysql 时间戳。

$datetime = DateTime::createFromFormat('m/d/Y g:i a', "{$exp}");
$timestamp = $datetime->format('Y-m-d H:i:s');

哪里$exp等于:06/12/2013 6:41 pm

这在运行 PHP 5.4.3 的本地服务器上运行良好,但是当我将相同的脚本上传到我的托管服务器上时,它不想运行这部分,可能是因为 PHP 版本的差异。

我将如何解决这个问题或替代方案?谢谢!

最佳答案

您可以扩展 DateTime 类并自己实现 createFromFormat(),如下所示:-

class MyDateTime extends DateTime
{
    public static function createFromFormat($format, $time, $timezone = null)
    {
        if(!$timezone) $timezone = new DateTimeZone(date_default_timezone_get());
        $version = explode('.', phpversion());
        if(((int)$version[0] >= 5 && (int)$version[1] >= 2 && (int)$version[2] > 17)){
            return parent::createFromFormat($format, $time, $timezone);
        }
        return new DateTime(date($format, strtotime($time)), $timezone);
    }
}

$dateTime = MyDateTime::createFromFormat('Y-m-d', '2013-6-13');
var_dump($dateTime);
var_dump($dateTime->format('Y-m-d'));

这适用于 PHP >= 5.2.0 的所有版本。

请参阅此处的演示 http://3v4l.org/djucq

关于php - PHP 5.2.14 的日期时间::CreateFromFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076627/

相关文章:

mysql - 使用 Hadoop 更新 MySQL

mysql - 相当于 MySQL UTC_DATE() 的最快 postgreSQL(获取 UTC 日期)?

php - 如果使用 PHP 则跳过 parent

php - 12 小时时钟数组排序

php - 用于覆盖 MP3 文件以在 PHP 中使用的 Linux 工具

mysql - 更新列值为 True 且时间戳列为 MAX 的位置

php - 在 vagrant box 上编辑 php.ini

java - 如何将纪元日期转换为 Joda 时间 LocalDate?

php - 在 PHP 中将一种日期格式转换为另一种日期格式

python - 按年份对 csv 字符串进行分组