将PHP响应日期转换为客户端本地时间
Convert PHP echoed date to client local time
这是我的第一篇文章。我有一个问题似乎无法解决。它来了:
我有一个PHP脚本,可以将事件的日期打印到页面上:
$event_datetime = date("g:i A (m/d/y)", strtotime($row['event_time']));
echo $event_datetime
我想使用Javascript将$event_datetime转换为客户端本地时区或本地客户端计算机时间。
有什么想法吗?
提前感谢!
不要将日期回显到javascript,只需回显时间戳并使用javascripts日期对象。
var date = new Date(<?php echo strtotime($row['event_time']) * 1000); ?>);
现在,您可以使用javascripts日期对象打印出您想要的时间。像这样:
date.toLocaleDateString();
//The default output will be the users' timezone (the client where the javascript is being executed), but can be configured with the options argument
参见:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
有关javascript日期对象的更多信息
您可以使用php将所有日期转换为一个时区:
date_default_timezone_set('America/Los_Angeles');
例如:
$time = time();
$date = date(DATE_RFC822, $time);
echo $date . PHP_EOL;
date_default_timezone_set("Australia/Perth");
$date = date(DATE_RFC822, $time);
echo $date. PHP_EOL;
输出:
Mon, 19 Aug 13 18:49:40 +0000
Tue, 20 Aug 13 02:49:40 +0800
您只需要从某个地方获取客户端时区(例如,保存在数据库中的首选项或通过javascript获取)。
请参阅获取客户端';s使用JavaScript 的JavaScript时区
我得到了我想要的答案,但我感谢你们花时间提供帮助。你的解决方案很棒,但不是我需要的。好的,我是怎么得到的:
请记住$row['event_time']是保存在UTC时区数据库中的日期时间值。
while($row = $result->fetch_assoc())
{
$s_date = new DateTime($row['event_time'],new DateTimeZone('UTC'));
$s_date->setTimezone(new DateTimeZone('America/New_York'));
$start_event_time = $s_date->format('g:i:s A (m/d/y)');
echo $start_event_time;
}
您可以创建一个获取当前用户时区的附加脚本,并更改America/New_York以使其更加动态。
希望它能帮助我解决同样的问题。
相关文章:
- 使用JavaScript将客户端日期/时间字符串转换为JSON日期/时间串
- Javascript 倒数计时器 - 客户端时间与 mySQL 时间
- 使用 JavaScript 的客户端日期/时间戳一致(考虑时区)
- 同步客户端和服务器端时间
- JavaScript编辑本地客户端时间
- javascript客户端时间到php服务器时间
- 显示客户端时间,而不是 javascript 中的服务器时间
- 将 JavaScript 的客户端时间获取到 PHP 中
- 如何使用客户端时区将数据库时间戳输出为客户端中的日期戳
- 引导日期选择器占用客户端PC时间,如何从服务器设置默认时间
- 服务器时间而不是客户端时间 JAVASCRIPT
- 如何使这个javascript函数实际收集服务器时间和倒计时,直到事件开始而不是浏览器/客户端时间
- FlipClock - 使用服务器时间而不是客户端时间
- 在浏览器上显示服务器时间而不是客户端时间
- 在服务器上将客户端时间转换为UTC以进行存储
- 客户端时间设置在javascript中破坏了可读日期
- 如何发送客户端's时间戳到Servlet
- 在c#中检索准确的客户端时间
- 获取服务器端时间和客户端时间之间的差异并显示它
- 比较客户端时间戳和服务器时间戳