我需要使用PHP和MYSQL创建一个在线预订系统,但是在创建数据库表结构时,我总是陷入困境。
这是我到目前为止所使用的表结构:(伪)
TABLE: 'times'
time_id | int | AI
time | datetime? (is this the best approch, if so how would the PHP code look for the datetime format?)
available | boolean
TABLE: 'bookings'
booking_id | int | AI
client_id | int
对于用MySQL的时间戳格式保存日期和时间值,还是以自定义的无符号INT格式保存时间值,我陷入了两难境地。这里的主要考虑因素是检索的速度、PHP中适当的范围计算以及偶尔格式化为人类可读的值。
每种类型及其范围所需的存储空间:
DATETIME 8 bytes '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
TIMESTAMP 4 bytes '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
UNS
我完全搞不懂PHP UTC/本地时间转换。有些函数隐式地转换时间,有些则不。啊!
比方说,我有以下PHP代码:
$timestamp = strtotime("2016-05-13 09:26:30"); //From MySQL date format
//$timestamp returned is 1463153190
如果我 1463153190到UTC时间,它就变成了05/13/2016 @ 3:26pm (UTC)。为什么?
如何获得一个函数来将时间从字符串转换为时间戳一对一,而没有任何时区恶作剧?
我对此进行了搜索,但什么也找不到。
我有一张文章桌。当我写新文章时,我会使用php time()函数将时间写入mysql表中。
我的桌子是
id文章时间
时间数据类型为INT(无符号)
我的问题是我想展示从上周到今天的文章,或者从上个月到今天的文章。
我的mysql查询应该是怎样的?
通常我会这样做
SELECT * FROM articles ORDER BY Time DESC
这给了我从今天到过去的数据。我该怎么做呢?我想不出解决办法。我应该一起使用php-mysql,或者我可以只使用mysql吗?你能给我一些想法或例子吗?谢谢。
编辑:
我按照建议改成了datetime,现在我想我有时
我把“生日”作为时间戳(整数)存储在Sphinx搜索引擎中。
(例如)
User DOB is "12-01-1960" (Age is 55)
Sphinx side: 3980298496 (MySQL handle this from DB to Sphinx)
在PHP方面,出于搜索目的,我想计算时间戳,如下所示,但它给出了负值,因为如果日期小于1970年1月1日,PHP就会给出负值
Carbon::now()->subYears('55')->timestamp = -288316800
如何制作一个积极的时间戳?这样我就可以在PHP中进行
昨天我问了一个关于bigints的问题,得到了很好的回答。然而,我一直在观察一些奇怪的行为,我想知道发生了什么。
在我的php中,我有一个数组,我将它发送回一个使用它的javascript web客户端程序。
在php中
sendBack = null;
sendBack[0]['TimeStamp'] = $Time; // A bigint got from a mysql table milliseconds from 1970
sendBack[0]['Text'] = $Message; // A varchar message
我正尝试在浏览器上显示mysql存储的unix时间戳值(并将其保存为CSV文件)。这些值被存储为int (11)。问题是,当我显示它们时,我看到'd','P','j','M‘和其他用于格式化日期的字符,而不是实际的时间戳。出什么问题了?
<?php
/* MySQL connection and database connection code */
mysql_query ("SELECT emailaddress, subscribedate FROM email_list_subscribers WHERE subs
当我的表单保存一个输入时,我想输出时间。这是我的代码、DB设置和输出。我希望有人能帮我。我是PHP和SQL的新手,到目前为止我感到非常自豪。:)
<?php
$dbLink=mysql_connect('','','');
mysql_select_db('',$dbLink);
$abfrage='SELECT * FROM links ORDER BY Zeit DESC';
$ergebnis=mysql_query($abfrage);
?>
<?php
while($row
我试图使用STDDEV聚合时间戳,并不断得到一个错误,对于我所提供的论点来说,它并不存在。是否有方法将HP Vertica SQL中的时间戳转换为int格式或数字格式,甚至unix时间戳。
我试过:
select a, STDDEV(timestamp1)
from mytable
group by a
我得到错误,没有任何函数匹配给定的名称一个参数。我以前用过stddev。我查看了实际的表,发现虽然它是一个时间戳字段,但它看起来是一个日期。
我正在写一个基于web的前端到一个数据库(PHP/Postgresql),其中我需要存储各种日期/时间。时间意味着总是以本地时间在客户端输入,并以本地时间显示。出于存储目的,我将所有日期/时间存储为整数(UNIX时间戳),并将其规范化为UTC。一个特定的字段有一个限制,即填写的时间戳不允许在将来出现,所以我尝试使用数据库约束...
CONSTRAINT not_future
CHECK (timestamp-300 <= date_part('epoch', now() at time zone 'UTC'))
在浏览器和服务器之间时间稍微不同步