php - 最大 int 值结果函数 time()
问题描述
我需要保存 php "time();" 返回的值 mysql表中的函数。当我在表中创建一个 int 字段时,会请求 int 值的最大长度。我想问你建议在 int 的类型声明中包含什么值。
我问你这个是因为,通过将数字保存在 int 中,很容易将它与“time();”的其他结果进行比较。(如果我理解正确,它总是返回一个 int 值)。
谢谢
解决方案
从PHP 手册开始:
返回自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来以秒数测量的当前时间。
因此,最好在 MySQL 数据库中使用DATETIME
type 并在将时间戳转换为有效格式后保存时间戳。为此,我会使用DateTime
. new DateTime
如果你只使用而不是更好time()
,因为DateTime
在构造函数中需要时间,默认情况下是now
:
public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
如果您要使用 Doctrine 2,那就足够了。否则,您必须在插入之前格式化 DateTime 对象:
$dt = new DateTime();
$dt->format('Y-m-d H:i:s');
这将产生类似的东西
2019-04-30 15:34:16
DATETIME
对于您在 mysql 数据库中的类型,这是完全有效的格式。
如果您需要比较其他 DateTime 对象,您可以随时使用DateTime::diff
:
public DateTime::diff ( DateTimeInterface $datetime2 [, bool $absolute = FALSE ] ) : DateInterval
这对于使用 DateTimes 及其比较的智能和可表示的操作来说已经足够了。
编辑:
正如你所写
好的,我将 db 字段转换为“DATETIME”字段。但是现在我无法将表格字段的结果与 DateTime() 对象进行比较。您知道如何将表格字段转换为可与 DateTime () 对象进行比较吗?
您需要根据DateTime
数据库中的数据创建对象。它是通过使用来实现的createFromFormat
:
public static DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTime
所以你要做的是:
$dt = DateTime::createFromFormat('Y-m-d H:i:s', '2019-04-30 15:34:16');
瞧!
推荐阅读
- c# - 如何在 WPF 中初始化 WebView2?
- javascript - FullCalendar - 在 2 个日历之间拖动
- kotlin - Kotlin 类型特定对象声明
- vue.js - 存根电话输入 jest vue JS
- json - 使用 Express 和 Mongo 制作带有递归表的节点树
- node.js - 如何使用剧作家登录谷歌帐户?
- java - 随机选择所有数字到上限的更有效方法?
- c++ - 用于对可变深度嵌套向量进行元素操作的重载/模板化函数
- python - 我正在我的 discord.py 机器人上创建一个警告功能,但我不知道为什么它会给我一个属性错误
- django - 为什么我的 Django 登录没有通过身份验证?