如何从带时区的字符串日期获取时间戳,PHP?

斯纳格斯

我想使用以下格式创建ics的开始和结束时间(UTC):

DTSTART:20141107T110000Z
DTEND:20141107T120000Z

我有以下对象作为输入:

"event": {
    "timezone": "GMT+2",
    "start_time": "2014-11-07 13:00:00", // client local time
    "duration": 30
     },

 function _calc_end_date($start, $duration) {
    $start_date = new DateTime($start, new DateTimeZone('UTC'));
    $end_date = $start_date->add(new DateInterval('PT'.$duration.'M'));
    $end_date_str = $end_date->format('Y-m-d H:i:s');
    return $end_date_str;
 }

 private function dateToCal($timestamp) {
    return GMDATE("Ymd\THis\Z", $timestamp);
}

 $timezone  = $event['timezone']; // ????       
 $start = strtotime($event['start_time'] . " UTC");
 $end_date = $this->_calc_end_date($event['start_time'], $event['duration']);
 $end = strtotime($end_date . " UTC");

所以我写:

"DTSTART:" . $this->dateToCal( $start ) . $eol .
"DTEND:" . $this->dateToCal( $end ) . $eol .

这段代码有效,但是我得到的结果相差2小时。如您所见,我不输入TimeZone是因为我不知道如何操作。

$timezone  = $event['timezone']; // 

我需要以某种方式解析“ GMT + 2”并进行计算

$start = strtotime($event['start_time'] . " UTC");

与TZ。

请帮忙,

瓦伦丁·罗迪金(Valentin Rodygin)
$date = DateTime::createFromFormat( "Y-m-d H:i:s O", $event['start_time'] . ' ' . $event['timezone'] );
$date->setTimezone( new DateTimeZone( 'GMT' ) );
$startDate = $date->format( "Ymd\THis\Z" );

$date->add( new DateInterval( 'PT' . $event['duration'] . 'M' ) );
$endDate = $date->format( "Ymd\THis\Z" );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Unix时间戳或带时区的字符串?

来自分类Dev

Unix时间戳或带时区的字符串?

来自分类Dev

将字符串转换为带时区的日期时间

来自分类Dev

如何将多个日期格式的字符串转换为时区格式的时间戳

来自分类Dev

PHP从字符串获取Unix时间戳,而无需设置默认时区

来自分类Dev

如何将带有时区的奇怪日期时间字符串转换为时间戳(PySpark)

来自分类Dev

从 PHP 中的日期时间字符串显示默认时区

来自分类Dev

从字符串获取时间戳而不是日期

来自分类Dev

从包含时间戳的字符串获取日期

来自分类Dev

如何从字符串中分离时区和日期时间?

来自分类Dev

Python:从数字(纪元时间)获取日期时间(带时区信息)并将其转换为特定日期格式的字符串

来自分类Dev

日期时间字符串+时区

来自分类Dev

字符串中的日期时间时区

来自分类Dev

日期时间字符串+时区

来自分类Dev

将带时区的日期字符串转换为时间戳

来自分类Dev

Carbon:根据输入的日期字符串和时区返回时间戳

来自分类Dev

将日期值(字符串)转换为具有不同时区的时间戳

来自分类Dev

使用Arrow从带时区的字符串中解析日期和时间

来自分类Dev

如何将日期字符串转换为带时区的日期?

来自分类Dev

在bash中转换时间戳字符串的时区

来自分类Dev

如何将时间戳字符串转换为另一个时区的时间戳

来自分类Dev

如何使用 PHP 日期时间字符串在 Android 中获取经过时间

来自分类Dev

如何转换 PHP 时间戳以在 Java 中将日期时间格式显示为字符串(差异 UTC)?

来自分类Dev

Java从字符串中解析带时区的日期

来自分类Dev

如何在java.time的模式字符串中格式化带时区的日期?

来自分类Dev

从日期时间字符串获取日期

来自分类Dev

PHP字符串时间戳

来自分类Dev

如何在js中使用本地时区将日期字符串更改为日期时间?

来自分类Dev

在当前时区中将日期时间作为字符串获取

Related 相关文章

  1. 1

    Unix时间戳或带时区的字符串?

  2. 2

    Unix时间戳或带时区的字符串?

  3. 3

    将字符串转换为带时区的日期时间

  4. 4

    如何将多个日期格式的字符串转换为时区格式的时间戳

  5. 5

    PHP从字符串获取Unix时间戳,而无需设置默认时区

  6. 6

    如何将带有时区的奇怪日期时间字符串转换为时间戳(PySpark)

  7. 7

    从 PHP 中的日期时间字符串显示默认时区

  8. 8

    从字符串获取时间戳而不是日期

  9. 9

    从包含时间戳的字符串获取日期

  10. 10

    如何从字符串中分离时区和日期时间?

  11. 11

    Python:从数字(纪元时间)获取日期时间(带时区信息)并将其转换为特定日期格式的字符串

  12. 12

    日期时间字符串+时区

  13. 13

    字符串中的日期时间时区

  14. 14

    日期时间字符串+时区

  15. 15

    将带时区的日期字符串转换为时间戳

  16. 16

    Carbon:根据输入的日期字符串和时区返回时间戳

  17. 17

    将日期值(字符串)转换为具有不同时区的时间戳

  18. 18

    使用Arrow从带时区的字符串中解析日期和时间

  19. 19

    如何将日期字符串转换为带时区的日期?

  20. 20

    在bash中转换时间戳字符串的时区

  21. 21

    如何将时间戳字符串转换为另一个时区的时间戳

  22. 22

    如何使用 PHP 日期时间字符串在 Android 中获取经过时间

  23. 23

    如何转换 PHP 时间戳以在 Java 中将日期时间格式显示为字符串(差异 UTC)?

  24. 24

    Java从字符串中解析带时区的日期

  25. 25

    如何在java.time的模式字符串中格式化带时区的日期?

  26. 26

    从日期时间字符串获取日期

  27. 27

    PHP字符串时间戳

  28. 28

    如何在js中使用本地时区将日期字符串更改为日期时间?

  29. 29

    在当前时区中将日期时间作为字符串获取

热门标签

归档