Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 变量中的时间计算_Php_Mysql_Variables_Time - Fatal编程技术网

Php 变量中的时间计算

Php 变量中的时间计算,php,mysql,variables,time,Php,Mysql,Variables,Time,我有以下疑问: INSERT INTO table (a, b, c) VALUES (NOW(), NOW() + INTERVAL 14 DAY,?) 对于a和b我使用的是时间戳,而b是时间戳a,加上14天 我遇到的问题是,我需要稍后在登录脚本上使用c,当c被降计数为零时,将发生进一步的查询 因此,我认为找到一个变量来精确计算a和b之间的差异是最好的方法 b - a = c 这样的变量将被插入到数据库中 我的问题是,我现在从值部分有2个时间戳,我不知道如何使用到这一点。我可以通过fetc

我有以下疑问:

INSERT INTO table (a, b, c) VALUES (NOW(), NOW() + INTERVAL 14 DAY,?)
对于
a
b
我使用的是时间戳,而
b
是时间戳
a
,加上14天

我遇到的问题是,我需要稍后在登录脚本上使用
c
,当
c
被降计数为零时,将发生进一步的查询

因此,我认为找到一个变量来精确计算
a
b
之间的差异是最好的方法

b - a = c
这样的变量将被插入到数据库中


我的问题是,我现在从值部分有2个时间戳,我不知道如何使用到这一点。我可以通过fetch_assoc等来处理它们。但在此之前,我认为可能有一种更简单的方法来实现我的目标?

如果你想让
c
成为一个整数,并且
a
b
之间的差,那么你可以使用unix\u时间戳(这是自1970-01-01以来经过的秒数)

要将此类整数值转换回时间戳,您可以使用来自\u UNIXTIME()的函数


您可以找到更多信息

表格
需要加引号,因为它是保留字。如果您只是更改了表名以简化查询,那么请至少保持语法有效。或者使用
mytable
而不是
table
。到目前为止,它是一个整数。这取决于什么是必要的。我可以把它改成文本,varchar…所以c在几秒钟内基本上是b-a?是的。如果c降到0,就会发生一些事情。我很难遵循你的逻辑。你能把这个问题改一下以便更容易理解吗?你好,这个不行。我试着使用这个,但查询不会发生。当我离开最后一部分时,它工作了。c的数据类型是20个字符的整数。奇怪的是,我已经将errorreport设置为e_all,但不会得到此查询的errormessage。所有其他的都在工作。只需在php中打印查询,并尝试在mysql中手动运行它。e_all指的是php调试,而不是mysql。我发现了错误。此查询存在逻辑问题。计算的时间错了。不是计算[now()]-[now()+14d],而是计算[now()+14d]-[now()]。这是理解整个系列的另一个问题。如果我现在使用,时间将以php时间给出,实际时间是多少。如果我使用unix\u时间戳,它将给出从unix\u时间开始的秒数。现在我有14000000的c。但在14天内,这在几秒钟内是不一样的。应该是60**60*24*14=1.209.600秒,还是我错了?@bonny很高兴它现在能工作了。只是一个提示,如果你能为我的回答投上更高的票,那也没什么坏处。谢谢:)
INSERT INTO table (a, b, c) VALUES (NOW(), NOW() + INTERVAL 14 DAY,unix_timestamp(now()) - unix_timestamp(now() + interval 14 day))