当前位置: 首页 > 知识库问答 >
问题:

使用应用的偏移量从mysql数据库获取unix时间戳

戎洛城
2023-03-14

我有到UTC的秒偏移量,数据库中存储的所有时间戳都是UTC,如何在选择查询期间应用偏移量,

mysql_query("SELECT * FROM table WHERE unix_timestamp=unix_timestamp with offset applied");

mysql_query("INSERT INTO table (unix_timestamp) VALUES(UNIX_TIMESTAMP())");

我想在UTC时间插入数据库并在本地时间检索。

在PHP上:

date_default_timezone_set('UTC');

$user_timezone_offset=-7200; // -2

我可以在select的mysql运行时中减去unix\u timestamp字段$user\u timezone\u offset吗?

我正在插入UTC,这显然是我所需要的,但为了选择用户的本地时间,我需要以某种方式将偏移量应用于存储在数据库中的时间戳。

编辑:我刚刚遇到这个:

$user_timezone_offset="-2:00";

FROM_UNIXTIME(CONVERT_TZ(unix_timestamp,'+00:00','$user_timezone_offset'))

需要知道如何将其应用于选择查询,使unix_timestamp的选择在选择中转换为比较,结果也被修改为php的fetch_array

这似乎是解决方案:

 SELECT *, Unix_Timestamp(CONVERT_TZ(FROM_UNIXTIME(unix_timestamp), '+00:00', '$user_timezone_offset')) as unix_timestamp

事实上,这有一个问题-尽管在

 mysql_fetch_array($result){ $row['unix_timestamp']; }

在检查时转换

  WHERE unix_timestamp=value //assuming unix_timestamp

要在select上进行转换-在那里它没有转换,另一个

  Unix_Timestamp(CONVERT_TZ(FROM_UNIXTIME(unix_timestamp), '+00:00', '$user_timezone_offset')) 

每次根据转换后的值进行检查时,都必须调用unix_timestamp进行“转换”。

共有1个答案

颜德馨
2023-03-14

我认为你可能把问题复杂化了。

时间戳始终为UTC。在PHP中检索时间戳时,它是UTC。

例如,当您使用date()函数转换时区时,它显示在php的任何时区中。ini设置日期。时区设置为。

因此,如果您有具有特定时区的用户,只需在本地时间显示日期之前使用适当的时区调用date\u default\u timezone\u set()。

如果您使用DateTime类,那么您可以在构造对象时指定所需的时区。

除非您有非常具体的原因,否则当您从数据库获取时间戳时,应该不需要执行时区转换。PHP为您处理这一切。

 类似资料:
  • 我有一个UTC的时间戳。我将其转换为本地时间。我的时区是CET/CEST。 由于我的时区,系统会自动应用正确的偏移量:如果我在夏天转换时间戳,它会自动添加2小时(无论何时转换),如果在冬天,它会添加1小时。 到目前为止-很好。 现在,我想基于另一个引用的时间戳转换UTC时间戳。如果引用在夏季,则应始终添加2小时-无论转换的时间戳是夏季还是冬季-如果引用在冬季,则应始终添加1小时。 那么,如果我的系

  • 问题内容: 我正在尝试将静态数据转换为使用数据库结果。我将使用 MySQL 和 PHP 。 示例代码: 以下是我的php / msql: 如何使用我的MySQL查询中的那些并将其实现到chartjs上的数据集?我也希望标签也可以从我的MySQL查询中生成。我应该在jQuery代码内部循环数据集吗? 这是我正在使用的插件:http : //www.chartjs.org/docs/#line-cha

  • 问题内容: 通过将值放入构造函数中,我可以将unix时间戳转换为对象。例如:我可以将其作为。 但是在那之后,如何从该对象取回unix时间戳? 问题答案: 检索自格林尼治标准时间1970年1月1日传递给构造函数以来的毫秒数。从中获得Unix时间(相同,但以秒为单位)并不难。

  • 我的数据库表如下所示 我想要得到所有的一周的时间,有多少任务是在星期一,星期二...星期五创建的。如有任何帮助,我们将不胜感激。

  • 问题内容: 我知道相反。给定一个时区,我可以通过以下代码片段获取时区偏移量: 我想知道如何从时区偏移量获取时区名称。 鉴于 (以毫秒为单位; +6.00偏移) 我想得到以下任何可能的时区名称的结果: 问题答案: 用

  • 问题内容: 我想使用php和jquery ajax从mysql数据库中获取数据。“ process.php”是连接到数据库并获取mysql数据的php文件。当它单独运行时它可以工作,但是当使用ajax调用时它不起作用。有人可以帮忙纠正错误吗?这是我的html文件: 这是我的process.php文件 问题答案: 您的ajax调用中有两个语法错误: 请记住,jQuery的ajax需要一个对象作为参数