我正在构建一个显示特定日期特定时间的应用程序。此应用程序旨在为全球的人们服务。
我用一小时格式的TZ(-4 / 2 / 9.5 / -1ETC)进行所有计算。 (别担心。小时tz是在DST计算之后)
现在,我想向用户显示他当地时间。由于开发原因,我只能使用小时tz进行此计算。
经过多次尝试后,我想写一段似乎有效的代码。 (测试它几个时区,negetive和积极)我想知道我的代码是否正常?我能以更有效的方式做到吗?这段代码支持无限日期范围吗?
这是代码:
static function current_local_time_zmanim($tz)
/*
* This function will get the number of hours off set (the time zone that Full_Zmanim_calculation() is using to make the calcukation) and will return the current local time and date.
*/ {
$tz= ($tz * 3600);// calculatoin: (hour offset(tz. can be -4 or 4) * 3600). eg: (-4*3600) or (3*3600)// converting the hour tz to TIMESTAMP
$date_utc = new DateTime(null, new DateTimeZone("UTC")); // current time in UTC.
$utctime= $date_utc->getTimestamp(); // current time in UTC TIMESTAMP
$date_utc->setTimestamp($utctime + ($tz));// keep in mind that tz can be either positive or negetive
$localtime= $date_utc->format('H:i');
echo "<br> local time: $localtime <br> ";
return $localtime;
}
您怎么看?
谢谢!