在我们的应用程序中,我们目前分别存储日期,时间和时区。日期字段是可选的,这就是我们将所有内容分开的原因。对于用户界面,他们将专门选择日期,时间和时区。所有内容当前都以UTC格式存储,时区将是一个ID,它引用另一个查找表。
我理解并看到它的方式,我们可以显示用户指定的日期和时间,只需显示所有这三个值而无需调整任何内容。如果他们在太平洋标准时间晚上11-30-15下午6点进入,这就是他们会看到的,但是我们认为合适的格式。
我正在使用Laravel with Carbon,只是为了提供更多信息。任何反馈都会很棒!
答案 0 :(得分:0)
将整个日期,时间和时区存储为单个列。将用户输入的时间转换为GMT并存储在db中。当您需要向用户显示将GMT转换为USERTIMEZONE时的时间。
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());
}
set @xml.modify
(
'
replace value of (/Content/ContentItems/ContentItem/Body/text())[1]
with (
if (/Content/ContentItems/ContentItem/ContentKey/text() = "abc") then "Success"
else ""
)
')
select @xml
`