繁体   English   中英

非标准时区的php转换为标准

[英]Php-Conversion of Non-standard timezone to standard

我的ics内容有个问题,其中Vtimezone,TZID显示为非标准时区,需要将其转换为标准时区。PHPDateTimeZone()函数不会转换/处理非标准时区。

ICS内容看起来像

BEGIN:VCALENDAR
PRODID:
VERSION:2.0
METHOD:REQUEST

BEGIN:VTIMEZONE
TZID:Eastern
BEGIN:STANDARD
DTSTART:20001105T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:Standard Time
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20000312T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:Daylight Savings Time
END:DAYLIGHT
END:VTIMEZONE

谁能帮我找到解决方案.....

解决此问题的好方法可能是:

  1. 将您的Vtimezone TZID转换为Unix时间戳

Unix时间(也称为POSIX时间或历元时间)是用于说明在时刻时间,定义为由于00:00:00协调通用时间(UTC)时起已经过的秒数的系统,周四,1 1970年1月

从此TZID时区获得的时间戳将采用以下格式: 1459408447

  1. 针对America / Denver,将该时间戳转换为所需的时区,类似于以下示例:

     $timezone = new DateTimeZone('America/Denver'); $timestamp = 1459408447; $dt = new DateTime( $timezone ); $dt->setTimestamp($timestamp); echo $dt->format('Ymd H:i:s (e)'); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM