我在php-manual“date”上找到了这个函数。
<?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()
方法有另一个问题。
我有两个变量...... $time
和$date
...我遇到的问题是$date
已经是1347667200
和$time
之类的时间戳。一个“字符串”(我猜)11:00
或14:00
。
如何将这两个值组合成两个表示确切日期和时间的时间戳?
答案 0 :(得分:1)
很高兴再次看到my post helped you!
您正在使用的功能需要Unix time:
Unix时间或POSIX时间是用于描述实例的系统 time,定义为自之后经过的秒数 午夜世界协调时间(UTC),1970年1月1日,不是 计算闰秒。
因此单独一个时间值对你没有帮助,你也需要一个日期组件,否则就无法计算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;
答案 1 :(得分:0)
函数unixToiCal
需要UNIX时间戳。这是1970年1月1日格林威治标准时间午夜以来的非闰秒数。有很多方法可以获得这样的东西,但你不能将“14:00”之类的时间“转换”为一个,因为下午2点对应不同日期的不同时间戳。这是绝对的,而不是相对于午夜。
评论中提到的小数值是时区偏移量。无论如何,这几乎总是会花费整整几个小时,但是如果你正在处理一个与UTC相差非整数小时的地方,那么你必须把它转换成几小时而不是几小时+分钟。
答案 2 :(得分:0)
您可以使用strtotime
将日期和时间字符串转换为时间戳。