在我的Drupal网站上创建一个新事件时,我将事件的日期/时间设置为我假设的当地时间。我希望系统中的日期/时间设置为我在添加/编辑表单上看到的值,但不是;它被设置为UTC。
Event Start (add/edit form): 2012-12-20 1:00pm EST
Event Start (database): 2012-12-20 6:00pm UTC
当我使用date()显示此日期/时间时,即使将默认时区设置为EST(“America / Toronto”),日期/时间仍然显示在2012-12-20下午6:00。
问题似乎不一定是drupal,日期/时间以其存储方式显示,但我认为问题可能是添加/编辑表单上的日期/时间输入控件。 ..可能的javascript时间相关。
这些值在显示时发布:下午5:00作为3个不同的值转到服务器:5,00,PM。它们以UTC身份存储在数据库中,但无论我尝试什么,它们始终显示为UTC。我尝试过format_date,date_default_timezone_set,在.htaccess文件中设置PHP时区......没有运气:s
讨厌必须手动完成,但这可行:
$tz = new DateTimeZone('America/Toronto');
$offset = $tz->getOffset(new DateTime($start_date));
$start_stamp = strtotime($start_date) + $offset;
答案 0 :(得分:-1)
如果您有日期格式化程序(配置页面位于/ admin / config / regional / date-time),您可以使用计算机名称重复使用它:
$date = new DateObject($timestamp);
$value = date_format_date($date, 'my_date_string_format');