开发者社区> 问答> 正文

对1970年之前的日期使用strtotime?mysql

我在mysql中有一个文本列,它以yyyy-mm-dd格式存储日期值。现在,在我的php页面中,我使用此代码将其解析为日期值。

date("F j, Y", strtotime($row['value'])); 现在,我刚刚读到strtotime()仅在1970年1月1日之后解析值。在该日期之前,我有很多日期值。有没有解决的办法?我不想更改数据库结构。

展开
收起
保持可爱mmm 2020-05-17 12:39:14 498 0
1 条回答
写回答
取消 提交回答
  • 从文档中strtotime():

    strtotime()的范围介于1901年12月13日星期五20:45:54 GMT和2038年1月19日星期二03:14:07 GMT之间;尽管在PHP 5.1.0之前,此范围在某些操作系统(Windows)上限制为从01-01-1970到19-01-2038。

    您正在运行什么版本的PHP?在什么平台上?也许是时候升级了。

    如果您正在使用1901年12月13日到2038年1月19日范围之外的日期,请考虑使用PHP的DateTime对象,该对象可以使用更广泛的日期范围。

    程序:

    $date = date_create($row['value']); if (!$date) { $e = date_get_last_errors(); foreach ($e['errors'] as $error) { echo "$error\n"; } exit(1); }

    echo date_format($date, "F j, Y"); 面向对象:

    try { $date = new DateTime($row['value']); } catch (Exception $e) { echo $e->getMessage(); exit(1); }

    echo $date->format("F j, Y");来源:stack overflow

    2020-05-17 12:43:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像