Generate Datetime in the future without UNIX timestamp
假设今天是08.20.2014。
我想用php从"今天"开始再加30年(08.20.2044年),然后用它的Datetime字段将它插入我的mysql数据库。
如何在不使用Unix时间戳的情况下正确生成yyyy.mm.dd h:i:s?
如果我使用
mktime()->我得到了一个unix时间戳(有限的,有一个maxyear 2038,所以是胡说)
time()->我得到一个unix时间戳
date()->我需要一个unix时间戳
strtotime()->im从/到unix时间戳的转换
我完全错过了一点吗?
如果我在代码中使用的是Unix时间戳,那么使用Datetime的意义是什么?它是有限的(我知道日期时间也限制在9999年)?
- 那么,如果年份日期时间支持年份到9999,那么接下来30年的问题是什么?
- Unix时间戳是有限的,没关系,但是你还有很多时间。日期时间是可读的,如果您使用一个数据库,有时您自己检查它,这一点非常重要。
- 旁注:这也适用于:日期("y-m-d h:i:s",strtotime("+1年"));
- @但不是用了30年…
- 检查格林威治标准时间(GMT)的gmdate()。
- @用户1986811这只是一个例子。将+1改为+30。:)
- @格瑞菲尔德不工作,这是问题所在,你自己试试。
- @用户1986811有趣。好的,然后使用datetime类。
不要在代码中使用unix时间戳,请使用datetime类。
1 2 3 4
| $time = new DateTime();
$time->add(new DateInterval('P30Y'));
echo $time->format('Y-m-d'); |
打印日期:2044-08-20
- 我会为我的问题试一试的,似乎是合法的。以前也看到过。