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

PHP

柯宜年
2023-03-14

因此,我有一个带有注释功能的站点,其中注释的时间戳存储在MySQL数据库中。据我所知,时间戳在存储时转换为UTC,然后在检索时转换回默认时区。在我的例子中,我的服务器位于中央夏令时时区(CDT)。

我计划通过输入表单从每个用户那里获取时区。我只是想知道如何将时间戳值转换成用户的时区。

  • 首先,我会将UTC转换为本地时区吗?或CDT到本地时区?
  • 其次,我将如何在PHP中实现这一点?我只想:
$userTimezone = new DateTimeZone($userSubmittedTimezoneString);
$myDateTime = new DateTime($storedTimestamp, $userTimezone);

...还是不正确?

共有3个答案

习狐若
2023-03-14
$timezone = new DateTimeZone('America/Vancouver');

$date = new DateTime(date('m/d/Y h:i:s a', time()));
$date->setTimeZone($timezone);
echo $date->format('l F j Y g:i:s A')."\n";

替换新的日期时间(日期('m/d/Y h:i:sa',time()) 带有新日期时间(“UTC时间”)

您可以为每个用户输入创建一个新的DateTimeZone()对象。

陈实
2023-03-14

没有可靠的方法获取用户的时区。时区信息不在HTTP头中发送。您所能做的最佳选择是:

  1. 将IP地址与Insta地理数据库匹配-或-
  2. 使用Javascript获取用户计算机上设置的时间,并将其发送到服务器(AJAX)或在客户端生成时间字符串
百里文景
2023-03-14

日期/时间/日期时间值在您提供时存储在MySQL中。也就是说,如果将字符串2012-04-17 12:03:23插入DATETIME列,则将存储该值。它将在内部转换为一个时间戳,该时间戳可能准确,也可能不准确(见下文),但当您再次查询该值时,您将返回相同的值;往返是透明的。

如果您尝试在SQL内进行时间计算,可能会出现问题。即需要SQL考虑时区和/或服务器时间的任何操作。例如,使用now()。对于任何这些操作,都应该正确设置时区和/或服务器时间。请参见时区问题。

如果这与你无关,你只需要在PHP中进行计算,你只需要确保你知道你想从哪个时区转换到哪个时区。为此,可以方便地将所有时间标准化为UTC,但这并不是必需的,因为从任何时区到任何其他时区的时区转换也可以正常工作,只要您清楚要从哪个时区转换和转换到哪个时区。

date_default_timezone_set('Asia/Tokyo'); // your reference timezone here

$date = date('Y-m-d H:i:s');

/* INSERT $date INTO database */;

$date = /* SELECT date FROM database */;

$usersTimezone = new DateTimeZone('America/Vancouver');
$l10nDate = new DateTime($date);
$l10nDate->setTimeZone($usersTimezone);
echo $l10nDate->format('Y-m-d H:i:s');
 类似资料:
  • 问题内容: 我正在尝试使用jQuery的功能上传文件,但未获得任何输出。有人请帮我解决这个问题。我不知道此脚本是否正确。我的脚本是: 我还需要帮助,使用jQuery从文件上传字段获取数据。 问题答案: AJAX不支持文件上传。有些插件如ajaxfileupload基本上会创建一个隐藏的表单并动态上传文件。

  • 问题内容: 当前,我正在运行一个查询,该查询将显示“产品”表和与产品相关联的“用户”的所有内容。它打印在桌子上。我想创建一个按钮,显示所有记录。请注意,我只能只查看选定的记录。.我将如何处理? 因此,应该为每个返回的记录显示一个按钮。当我单击此按钮时,将出现另一个窗口,该窗口显示了全部内容(仅针对此记录)以及与之相关的用户。该按钮如何知道与其关联的记录。 问题答案: 这将带您到另一个页面。使用ge

  • 问题内容: 我在通过localhost上的PHP脚本选择数据库时遇到麻烦。 我100%确定数据库名称拼写正确,并且实际上它很好地出现在phpmyAdmin上,并且仅当我尝试通过在本地主机上运行PHP脚本尝试连接到它时,它才会显示以下错误: 我的PHP代码在这里: 我已经阅读了成千上万个论坛,并且我将尽一切努力。但是不知道这里出了什么问题吗? 一件有趣的事情是,如果我在PHP脚本中将数据库名称更改为

  • 问题内容: 这是一个时间表,它的作用是显示前一天的时间表以及谁预定了每个时段(这是针对广播电台的。) 目前,它显示谁按时间顺序预订了每个时段,但是我想说每个结果旁边的时间。查询输出24行(从午夜到23:00),我想说的是每个插槽旁边的(00:00,01:00,02:00,03:00… 21:00,22 :00,依此类推。) 这是我当前的代码: 你能帮我吗? 问题答案: 我认为我们都在努力解决一个非

  • 问题内容: 精通PHP但学习Java的人应该知道的PHP与Java之间的主要区别是什么? 编辑: 我的意思是这些语言的语法上的差异,即它们的数据类型,它们如何处理数组和引用变量等等:) 问题答案: 这不是一个详尽的清单,我是PHP开发人员,前一段时间做过Java之旅,所以做了Caveat Emptor。 Java中的每个变量都必须以数据类型开头。这包括基本类型,例如boolean,int,doub

  • 问题内容: 我在JavaScript中输入了一个绝对URL,并为window.location进行了硬编码。 我不想每次测试应用程序时都必须更改此设置。在PHP中,我可以通过测试$ _SERVER [“ HTTP_HOST”]变量来找出我所在的服务器,然后进行相应的调整来处理此问题。但是,我不太熟悉Java,想知道它是否具有类似的方法?或者,即使JavaScript也有类似的方法? 代码如下: 我

  • 问题内容: 在PHP中构建MVC框架后,我遇到了一个问题,可以使用Java样式泛型轻松解决。抽象的Controller类可能看起来像这样: 在某些情况下,Controller类的子类只能接受Model的子类。例如,ExtendedController应该只将ReOrderableModel接受到addModel方法中,因为它提供了ExtendedController需要访问的reOrder()方法

  • 问题内容: 我一直在尝试使用AES-128 CBC解密字符串,该字符串最初是使用JAVA AES加密加密的。在Java中,使用PKCS7填充。而且我尝试使用类似的PHP代码进行加密和解密。但是我得到了不同的结果。 我的Java代码 以及我正在使用的等效PHP代码。 在Java中 纯文本= 123456 密码文本= tpyxISJ83dqEs3uw8bN / + w =​​= 在PHP中 纯文本=