0

我在 php 手册“日期”上找到了这个函数。

<?php 
// Converts a unix timestamp to iCal format (UTC) - if no timezone is 
// specified then it presumes the uStamp is already in UTC format. 
// tzone must be in decimal such as 1hr 45mins would be 1.75, behind 
// times should be represented as negative decimals 10hours behind 
// would be -10 

    function unixToiCal($uStamp = 0, $tzone = 0.0) { 

        $uStampUTC = $uStamp + ($tzone * 3600);        
        $stamp  = date("Ymd\THis\Z", $uStampUTC); 

        return $stamp;        

    } 
?>

我有一个像$event_time[0]这样的变量,它具有这样的时间格式14:00,即下午 2 点。我怎样才能转换这个时间格式,以便将它传递给unixToiCal()上面的函数?

感谢您的答复。

更新: 好吧,看来我完全糊涂了。谢谢你们清理事情。并没有真正了解该函数的第二个参数的用途。我来自奥地利,所以 UTC 偏移量应该是+2几个小时,对吧。

strtotime()我对该方法还有另一个问题。

我有两个变量...... <code>$time 和$date......我遇到的问题是它$date已经是一个时间戳,1347667200并且$time是一个“字符串”(我猜)11:0014:00.

如何将这两个值组合为一个表示确切日期和时间的时间戳?

4

3 回答 3

1

很高兴看到我的帖子对您​​有所帮助

您正在使用的功能需要Unix 时间

Unix 时间或 POSIX 时间是用于描述时间实例的系统,定义为自 1970 年 1 月 1 日午夜协调世界时 (UTC) 以来经过的秒数,不包括闰秒。

因此,单独的时间值并不能进一步帮助您,您还需要一个日期组件,否则您无法计算 unix 时间。

这是一个如何在 php 中将某些内容转换为 unix 时间的示例:

$date_to_unixtime = strtotime('3rd September 2012 18:33:34 PM (UTC)'); 

更新:

您可以像这样在 php 中为 unix 时间添加时间值:

$your_new_timestamp = $your_current_timestamp 
    + ($hours * 3600) 
    + ($minutes * 60)
    + $seconds;
于 2012-09-03T16:33:38.047 回答
0

你似乎有点困惑。你想做什么?

该函数unixToiCal需要一个 UNIX 时间戳。这是自 1970 年 1 月 1 日格林威治标准时间午夜以来的非闰秒数。有很多方法可以得到这样的东西,但你不能把一天中的时间“转换”成一个时间,比如“14:00”,因为下午 2 点对应于不同日子的不同时间戳。这是绝对的,与午夜无关。

评论中提到的十进制值是时区偏移量。无论如何,这几乎总是一个整数小时,但是如果您正在处理与 UTC 偏移非整数小时数的地方之一,那么您必须将其转换为小时数而不是小时数+分钟。

于 2012-09-03T16:32:24.227 回答
0

您可以使用strtotime将日期和时间字符串转换为时间戳。

于 2012-09-03T16:33:19.903 回答