[英]MySQL & PHP - How to convert date, time, and timezone when stored separately
在我们的应用程序中,我们当前正在分别存储日期,时间和时区。 日期字段是可选的,这就是为什么我们将所有内容分开的原因。 对于用户界面,他们将特别选择日期,时间和时区。 当前所有内容都存储在UTC中,时区将是一个ID,该ID引用了另一个查找表。
以我理解和看到的方式,我们只需显示所有这三个值即可显示用户指定的日期和时间,而无需进行任何调整。 如果他们输入的时间是太平洋标准时间(PST)11-30-15 6:00,这就是他们会看到的格式,但是我们认为合适。
我将Laravel与Carbon一起使用,只是为了提供更多信息。 任何反馈将是巨大的!
将整个日期,时间和时区存储为单个列。 将用户输入的时间转换为GMT并存储在db中。 当您需要显示用户时间时,请将GMT转换为USERTIMEZONE。
function getGeneralTimeFormat()
{
return 'Y-m-d H:i:s';
}
function convertDateTimeToGMT($dtime)
{
date_default_timezone_set('GMT');
$dtzone = new DateTimeZone(getTimeZoneDateTime($_SESSION['USER_TIMEZONE']));
$dtime->setTimeZone($dtzone);
return $dtime->format(getGeneralTimeFormat());
}
function convertGMTToLocalTime($timestamp)
{
date_default_timezone_set('GMT');
$dtime = new DateTime($timestamp);
$dtzone = new DateTimeZone(getTimeZoneDateTime($_SESSION['USER_TIMEZONE']));
$dtime->setTimeZone($dtzone);
return $dtime->format(getGeneralTimeFormat());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.