【问题标题】:Get Current Time With given Timezone offset使用给定的时区偏移量获取当前时间
【发布时间】:2013-07-03 12:22:07
【问题描述】:

我的数据库字段中有时区偏移。我需要将(created_date + time zone offset)与(current date + time zone offset)进行比较。

DATE(created_date + INTERVAL timezone_offset SECOND)

我知道如何在创建日期字段中添加时区。但我必须用date("Y-m-d H:i:s) 添加时区。

我在 mysql 查询中需要以下内容,

DATE("use php date function to get current date and time" + INTERVAL timezone_offset SECOND)

SQL 查询示例:

SELECT * FROM `admin` AS `A`
  INNER JOIN `timezones` AS `T` ON `T`.`admin_id`=`A`.`admin_id`
  WHERE (DATE(A.current_date + INTERVAL T.timezone_offset SECOND) != DATE('current    datetime by php function ' + INTERVAL T.timezone_offset SECOND)))

请帮忙。

【问题讨论】:

  • 查看此参考资料,这可能会对您有所帮助stackoverflow.com/questions/17425587/…
  • @RajeevRanjan,我已经检查过了。怎么可能在mysql查询中添加它?
  • DATE(created_date + INTERVAL timezone_offset SECOND) 在那个问题中类似于 $local_date 只需使用它并传递您的数据库偏移量以获得您想要的日期......
  • 我不必显示日期。我必须在 mysql 查询中比较两个日期。
  • 请填写完整的查询...

标签: php mysql datetime timezone


【解决方案1】:

你可以在你的sql查询中使用date("Y-m-d H:i:s)函数如下。

"SELECT * FROM `admin` AS `A`
   INNER JOIN `timezones` AS `T` ON `T`.`admin_id`=`A`.`admin_id`
    WHERE (DATE(A.current_date + INTERVAL T.timezone_offset SECOND) != DATE('".date("Y-m-d H:i:s")."' + INTERVAL T.timezone_offset SECOND)));"

您只需在 Sql Query 中添加 date("Y-m-d H:i:s") 函数。

【讨论】:

  • 任何这种复杂的东西都容易出错。我非常喜欢更简单的方法 - CONVERT_TZ 可以简洁明了地完成此操作。
【解决方案2】:

如果您的 MySQL 实例已加载时区表(请参阅http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html),那么您可以使用非常方便的 CONVERT_TZ 函数。

CONVERT_TZ(created_date, {time zone name that created_date is created in}, {time zone name you want})

我一直用它,非常好用。

【讨论】:

  • 请使用这个。不要简单地将秒数添加到日期......它不会考虑夏令时和其他时区相关的怪异。 CONVERT_TZ 将。
猜你喜欢
  • 1970-01-01
  • 2015-01-03
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2019-07-17
  • 2019-03-14
  • 2013-04-18
相关资源
最近更新 更多