我完全搞不懂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)。为什么?
如何获得一个函数来将时间从字符串转换为时间戳一对一,而没有任何时区恶作剧?
我正在写一个基于web的前端到一个数据库(PHP/Postgresql),其中我需要存储各种日期/时间。时间意味着总是以本地时间在客户端输入,并以本地时间显示。出于存储目的,我将所有日期/时间存储为整数(UNIX时间戳),并将其规范化为UTC。一个特定的字段有一个限制,即填写的时间戳不允许在将来出现,所以我尝试使用数据库约束...
CONSTRAINT not_future
CHECK (timestamp-300 <= date_part('epoch', now() at time zone 'UTC'))
在浏览器和服务器之间时间稍微不同步
我想从包含各种UTC时间的数组中提取最新的UTC时间。我可以比较UTC的两个时间戳如下:
#!/usr/bin/ruby
require "time"
a=Time.parse("2013-05-03 16:25:35 UTC")
b=Time.parse("2013-09-07 06:51:24 UTC")
if b < a
puts "latest time is #{a}"
else
puts "latest time is #{b}"
end
输出:
latest time is 2013
我有一个UTC的时间戳。我将其转换为localtime。我的时区是CET/CEST。
2018-10-03 12:00 UTC => 14:00 CEST
2018-10-30 12:00 UTC => 13:00 CET
由于我的时区,系统会自动应用正确的偏移量:如果我在夏天转换时间戳,它会自动增加2小时(无论我转换的时间是什么时候),如果是在冬天,它会增加1小时。
到目前为止,一切都很好。
现在,我想根据另一个引用的时间戳转换UTC时间戳。如果引用位于夏季,则应始终添加2小时-无论要转换的时间戳是夏季还是冬季-如果引用位于冬季,则应始终添加1小时。
Ref = 01.01.20
我有一个移动应用程序和rest服务。移动应用程序将生成并向web服务提供UTC日期、时间和时区。我需要使用php将这两个值存储到mysql中。
我正在从一个远程源获取日期时间,所以我不能使用mysql的UTC_TIMESTAMP()来生成‘当前’utc时间。
我有一个包含2列的表: created (DATETIME)和timezone (VARCHAR)
在PHP中,我将收集以下内容:
$created = "2010-09-30 12:31:10"; //Actual UTC time
$timezone = "America/Los_Angeles"
IN
我已经将当前的UTC时间转换为IST,现在我需要将此时间转换为一个小时之前的时间,并将其存储在一个变量中。
<?php
date_default_timezone_set('Asia/Kolkata');
$DateTime=date('Y-m-d H:i:s');
$DateTime=date('H:i:s',$DateTime - 3600);//This does not seem to work
echo $DateTime;
?>
对于用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