Osticket: 售票时间显示错误

创建于 2017-02-04  ·  28评论  ·  资料来源: osTicket/osTicket

售票时间显示错误。 我已经检查了我的服务器时间,我的 sql server 时间在那里是正确的。

os info
os ticket my sql time
os ticket
os timezone
osdate

售票时间显示错误。 我已经检查了我的服务器时间,我的 sql server 时间在那里是正确的。

regression bug

最有用的评论

删除 osticket DB 时区的时区问题:IST(解释为 Asia/Jerusalem)
http://osticket.com/forum/discussion/89257/v1-10-timezone-misinterpreted
https://github.com/osTicket/osTicket/issues/3654
https://github.com/osTicket/osTicket/issues/3583

我们在 include/class.config.php 中做了快速修复

搜索具有
function getDbTimezone()

在此功能中,您将最后一行作为
return $this->get('db_timezone');
注释此行,并在下面添加两行
$dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone;

函数如下。
function getDbTimezone() { if (!$this->exists('db_timezone')) { require_once INCLUDE_DIR . 'class.timezone.php'; $this->persist('db_timezone', DbTimezone::determine()); } $dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone; // return $this->get('db_timezone'); }

这将有很大帮助,直到有正确的代码修复。

所有28条评论

尝试检查您的 php.ini conf 并设置您的时区。

我的 php.ini 中的时区是正确的

感谢和问候
利乔·约瑟夫·乔治
技术团队|| 庄园在线
手机:+91 9895336448 | 办公室:+91 0481 2563646 | 分机:670
访问我们: www.manoramaonline.com | 领英 | 脸书 | 推特

来自:iHunt NSA [email protected]
至:osTicket/osTicket [email protected]
抄送:lijo joseph george [email protected] ,作者
[email protected]
日期:06-02-2017 上午 09:19
主题:回复:[osTicket/osTicket] 售票时间显示错误
(#3654)

尝试检查您的 php.ini conf 并设置您的时区。

您收到此消息是因为您创作了该线程。
直接回复此邮件,在 GitHub 上查看,或将线程静音。

* * * * * * * * * * *马拉雅拉庄园* * * * * * * * * **
本电子邮件的内容(包括附件或附件的内容(如果有))是马来亚庄园 (MM) 的特权和机密材料,不应以任何方式披露、使用或复制由预期收件人以外的任何人发送。 如果您不是所需的收件人,您应该删除此邮件和/或将其重定向到发件人。 本电子邮件中表达的观点(包括附件或附件,如果有的话)是个人发件人的观点,除非发件人明确并经授权表明它们是马来亚庄园的观点.
该电子邮件消息包括附件(如果有),据信没有任何病毒。 但是,收件人有责任确保它没有病毒,MM 不对因使用而产生的任何损失或损害负责。


如果你说的时间不对,应该是几点? 减了多少?

似乎它的时区 IST 显示时间(解释为
Asia/Jerusalem) not of Asia/Kolkata 我需要亚洲/加尔各答的时间
门票。

感谢和问候
利乔·约瑟夫·乔治
技术团队|| 庄园在线
手机:+91 9895336448 | 办公室:+91 0481 2563646 | 分机:670
访问我们: www.manoramaonline.com | 领英 | 脸书 | 推特

来源:法比安Dellwing [email protected]
至:osTicket/osTicket [email protected]
抄送:lijo joseph george [email protected] ,作者
[email protected]
日期:06-02-2017 PM 02:41
主题:回复:[osTicket/osTicket] 售票时间显示错误
(#3654)

如果你说的时间不对,应该是几点? 大约是多少
它关了?

您收到此消息是因为您创作了该线程。
直接回复此邮件,在 GitHub 上查看,或将线程静音。

* * * * * * * * * * *马拉雅拉庄园* * * * * * * * * **
本电子邮件的内容(包括附件或附件的内容(如果有))是马来亚庄园 (MM) 的特权和机密材料,不应以任何方式披露、使用或复制由预期收件人以外的任何人发送。 如果您不是所需的收件人,您应该删除此邮件和/或将其重定向到发件人。 本电子邮件中表达的观点(包括附件或附件,如果有的话)是个人发件人的观点,除非发件人明确并经授权表明它们是马来亚庄园的观点.
该电子邮件消息包括附件(如果有),据信没有任何病毒。 但是,收件人有责任确保它没有病毒,MM 不对因使用而产生的任何损失或损害负责。


嗯,这已经知道了:#3583

看了一下,完全糊涂了……

所以在 ost_config 是正确的 'Asia/Kolkata' (+5:30),在class.format.php function datetime $cfg->getTimezone() 是 'Asia/Kolkata' (+5:30)但是在将它传递给IntlDateFormatter 2 秒后,我们在“亚洲/耶路撒冷”(+4:30)。 如何??

编辑:找到了。 这是IntlDateFormatter的错误。

<?php
$formatter = new IntlDateFormatter('de',3,3,'Asia/Kolkata',IntlDateFormatter::GREGORIAN,null);
    echo $formatter->format(time());
?>

这应该是“现在 + 5:30”,但现在是“现在 + 4:30”!

@fdellwing我们已经多次遇到这个问题,你有更多细节需要修复吗?

还没有,如果有任何解决方法,必须仔细查看IntlDateFormatter

来自#3583

dbinoj commented on Dec 31, 2016
The timezone returned by timezone_name_from_abbr can not be trusted as it just selects the first result sorting the tz name alphabetically. This messes up times displayed in the site even though timezone in OSTicket System Settings, OSTicket User Prefs, php.ini, MySQL, Server OS are all set to the same value.

Eg. IST refers to Israel/Indian/Irish Standard Times (Ref: List_of_time_zone_abbreviations)
One may intend to use Indian/Irish timezone but "Asia/Jerusalem" comes first alphabetically.
Few other TZs which I found to have duplicates are ACT, AMT, BST, etc.,

Either function get_from_database in class.timezone.php:165 should be modified to translate ambiguous timezones with some other reference value or a better method must be implemented.

Related StackOverflow answer: http://stackoverflow.com/a/30958892

似乎解释可能会因奇怪的原因而改变。 CST db_timezone 在测试安装中被解释为 UTC...我重新启动了服务器两次并遇到了同样的问题。 为了调试它,我开始安装 php-devel、php-xdebug 并重新启动网络服务器......但随后问题消失了,CST 正确解决了美国/芝加哥。 0_0

CST 永远不会被timezone_name_from_abbr解释为 UTC。 您一定遇到了另一个问题。 您是否手动查询了您的数据库@@system_time_zone ? 旧版本(没有我的 PR)只是为此查询数据库。

删除 osticket DB 时区的时区问题:IST(解释为 Asia/Jerusalem)
http://osticket.com/forum/discussion/89257/v1-10-timezone-misinterpreted
https://github.com/osTicket/osTicket/issues/3654
https://github.com/osTicket/osTicket/issues/3583

我们在 include/class.config.php 中做了快速修复

搜索具有
function getDbTimezone()

在此功能中,您将最后一行作为
return $this->get('db_timezone');
注释此行,并在下面添加两行
$dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone;

函数如下。
function getDbTimezone() { if (!$this->exists('db_timezone')) { require_once INCLUDE_DIR . 'class.timezone.php'; $this->persist('db_timezone', DbTimezone::determine()); } $dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone; // return $this->get('db_timezone'); }

这将有很大帮助,直到有正确的代码修复。

谢谢大家,
已修复

@deependhulla我希望您不要将其宣传为有效的解决方案。 如果你想要一个合适的解决方案,看看我的 PR #3663

@fdellwing我的建议是快速修复,以便特别希望实施 osticket 并获得所有正确但基本的时区功能开始工作的人开始工作,这将帮助他们使用和探索 octicket 的功能和功能。

实际上更希望原始核心 osticket 尽快修复此时区问题。
和/或也为数据库选择时区提供选项。

总的来说,我喜欢 osticket。
也感谢 octicket 团队提供了如此出色的产品。

对于 Google 员工,如果您的数据库时间设置为 GMT,OSTicket 会将其读取为“欧洲/伦敦”而不是 UTC。 您的时间将在夏令时期间休息 1 小时。 要解决此问题,请更改includes/class.config.php 。 将方法OsticketConfig::getDbTimezone更改为:

function getDbTimezone() {
        if (!$this->exists('db_timezone')) {
            require_once INCLUDE_DIR . 'class.timezone.php';
            $this->persist('db_timezone', DbTimezone::determine());
        }
        $db = $this->get('db_timezone');
        if ( $db === 'Europe/London') {
            $db = 'UTC';
        }
        return $db;
    }

@deependhulla ...非常感谢....您给出了正确的解决方案..!!!

耐你们

是的,这个补丁不错,但这是硬编码的功能。 我使用亚洲/叶卡捷琳堡 (GMT +5.00) 但在 osticket 我看到门票日期为 GMT +4.00。
@deependhulla谢谢

删除 osticket DB 时区的时区问题:IST(解释为 Asia/Jerusalem)
http://osticket.com/forum/discussion/89257/v1-10-timezone-misinterpreted

3654

3583

我们在 include/class.config.php 中做了快速修复

搜索具有
function getDbTimezone()

在此功能中,您将最后一行作为
return $this->get('db_timezone');
注释此行,并在下面添加两行
$dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone;

函数如下。
function getDbTimezone() { if (!$this->exists('db_timezone')) { require_once INCLUDE_DIR . 'class.timezone.php'; $this->persist('db_timezone', DbTimezone::determine()); } $dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone; // return $this->get('db_timezone'); }

这将有很大帮助,直到有正确的代码修复。

你好
我们遇到了同样的问题,并在 1.10.5 中应用了上述补丁。 这一直运作良好。

然而,我们最近升级到 1.12.2 并且我们所有的售票时间再次变得奇怪,这次它提前了 2 小时 30 分钟(好像时区是 +8 而不是 +5.30)。 我们刚刚应用了相同的补丁,似乎运行良好。

从 1.10 开始,该错误是否仍然存在? 到 1.12?

删除 osticket DB 时区的时区问题:IST(解释为 Asia/Jerusalem)
http://osticket.com/forum/discussion/89257/v1-10-timezone-misinterpreted

3654

3583

我们在 include/class.config.php 中做了快速修复
搜索具有
function getDbTimezone()
在此功能中,您将最后一行作为
return $this->get('db_timezone');
注释此行,并在下面添加两行
$dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone;
函数如下。
function getDbTimezone() { if (!$this->exists('db_timezone')) { require_once INCLUDE_DIR . 'class.timezone.php'; $this->persist('db_timezone', DbTimezone::determine()); } $dvd_db_timezone='Asia/Kolkata'; return $dvd_db_timezone; // return $this->get('db_timezone'); }
这将有很大帮助,直到有正确的代码修复。

你好
我们遇到了同样的问题,并在 1.10.5 中应用了上述补丁。 这一直运作良好。

然而,我们最近升级到 1.12.2 并且我们所有的售票时间再次变得奇怪,这次它提前了 2 小时 30 分钟(好像时区是 +8 而不是 +5.30)。 我们刚刚应用了相同的补丁,似乎运行良好。

从 1.10 开始,该错误是否仍然存在? 到 1.12?

不知道 1.12 .. 但此修复程序再次在 osTicket (v1.14.2) 上为我们工作。

我尝试了两种解决方案,我可能是错的,但我认为没有一个对我有用。 另外我刚刚更新到 1.14.2,但我认为这个版本没有修复。

在此修复之前,我看到 MST(解释为美国/丹佛)比我的时间少 1 小时。

在完成上面提出的解决方案用户@deependhulla 之后,我至少可以看到我在时区部分选择的真实时区,即 America/Mexico_City,但现在我的时间错了 2 小时。

即使我尝试时间更早的其他时区,例如“America/New_York”,它提前 2 小时并且可以补偿我的 2 小时,但它最终会提前 4 小时。

我还检查了我的服务器时间,它在 MST 中,时间正确。 我通过在终端上执行命令“date”来检查这一点。

还有人遇到这个问题吗? 我了解问题已关闭,但我无法修复它。

@perezalvarezhi

您的系统时区设置为(管理面板 > 设置 > 系统 > 日期和时间选项 > 默认时区)? 是America / Mexico_City吗?

此外,您的个人资料时区设置为( Profile > Preferences > Localization > Timezone )?

干杯。

@perezalvarezhi

您的系统时区设置为(管理面板 > 设置 > 系统 > 日期和时间选项 > 默认时区)? 是America / Mexico_City吗?

此外,您的个人资料时区设置为( Profile > Preferences > Localization > Timezone )?

干杯。

@JediKev我想在阅读你的问题时你帮助我弄清楚了。
我必须输入与位于太平洋的服务器相同的默认时区(之前我说它在 MST 上,但它不是,它在太平洋上),然后我的代理配置文件位于它所在的时区。

我在管理面板 > 设置 > 系统 > 日期和时间选项 > 默认时区“America/Los_Angeles”中选择,然后在我的个人资料中选择了 America/Mexico_City。

这样它工作得很好。

谢谢!

@perezalvarezhi

惊人的! 我很高兴你解决了这个问题!

干杯。

大家好 !
我知道这是 2020 年,但这个问题仍然存在......必须编辑文件class.config.php并返回我的时区才能使其工作......谢谢
编辑:对不起,最新的主题已经是 2020 了。 我使用的是最新版本 1.14.3

@JediKev另一个有这个错误

@反用户

酷.. 你从来没有在你的问题线程中回复我的消息。 #5522

干杯。

@JediKev这个 bug 是在 1.12.2 版本上发现的,我在问题信息中告诉过这个(直到 1.12.6),这个问题来自旧时代,没有反应。 我认为应该重新打开票

此页面是否有帮助?
0 / 5 - 0 等级