Php 2037年之后存储MySQL日期的正确方法

Php 2037年之后存储MySQL日期的正确方法,php,mysql,database,datetime,year2038,Php,Mysql,Database,Datetime,Year2038,我试图在MySQL中存储一个日期()字段,该字段是2037年的连续日期 例如:2065-12-01 问题是该字段正在返回:1969-12-31 在DB上记录这些值的正确方法是什么?我应该使用VARCHAR吗 我计算date字段的值如下: $future_date = date('Y-m-d', strtotime("+$number_years_to_add years")); 您可能使用时间戳字段来存储日期,而不是日期时间字段 请参阅有关的mysql文档,具体如下: 日期类型用于包含日期部

我试图在MySQL中存储一个日期()字段,该字段是2037年的连续日期

例如:
2065-12-01

问题是该字段正在返回:
1969-12-31

在DB上记录这些值的正确方法是什么?我应该使用VARCHAR吗

我计算
date
字段的值如下:

 $future_date = date('Y-m-d', strtotime("+$number_years_to_add years"));

您可能使用时间戳字段来存储日期,而不是日期时间字段

请参阅有关的mysql文档,具体如下:

日期类型用于包含日期部分但不包含时间部分的值。 MySQL以“YYYY-MM-DD”格式检索并显示日期值最新版本 支持的范围为“1000-01-01”到“9999-12-31”

DATETIME类型用于同时包含日期和时间的值 部分。MySQL检索并显示“YYYY-MM-DD”中的日期时间值 HH:MM:SS'格式支持的范围为“1000-01-01 00:00:00”到 “9999-12-3123:59:59”

时间戳数据类型用于同时包含日期和时间的值 时光流逝。时间戳的范围为UTC的1970-01-01 00:00:01到 “2038-01-19 03:14:07”UTC


在我看来,您正在32位平台上使用php
date
strotime
之类的东西。这些功能最终会变成一个南瓜,就像灰姑娘的马车

您可能希望签出新的php类,或者升级到64位php实现

还有,读一下这个


(感谢您提前22年发现这个问题。其他人不会。)

A
DATE
type在这里工作正常,您是在运行一些老式的MySQL版本还是什么?另外,你到底是如何设置它的?你是如何尝试存储它的?我们看不到任何示例代码…我使用的是5.5.16版本,您可以显示表日期吗???@HidDencumOk,这是如何添加日期的,我认为问题在于:$future\u date=date('Y-m-d',strotime(“+number\u years\u to\u add years”);