Php 在mysql中选择查询时如何显示正确的时间戳?
我想显示查询的正确时间戳。我的数据库中的日期就是这个,日期时间戳在欧洲/柏林设置。这是在我的服务器设置,我总是得到这个结果 2017-05-26 09:05:58 我想显示查询中的日期。这是我的查询代码Php 在mysql中选择查询时如何显示正确的时间戳?,php,mysql,symfony,Php,Mysql,Symfony,我想显示查询的正确时间戳。我的数据库中的日期就是这个,日期时间戳在欧洲/柏林设置。这是在我的服务器设置,我总是得到这个结果 2017-05-26 09:05:58 我想显示查询中的日期。这是我的查询代码 select logs.action_date_time from AuditLogs 在菲律宾我该如何转换日志。动作\日期\时间日期?我应该看到这个结果 2017-05-26T09:05:58+02:00 我在google中搜索unix_时间戳,但我没有看到他们在select before
select logs.action_date_time from AuditLogs
在菲律宾我该如何转换日志。动作\日期\时间日期?我应该看到这个结果
2017-05-26T09:05:58+02:00
我在google中搜索unix_时间戳,但我没有看到他们在select before from查询中使用的任何示例。我用symfony来做这个。我只是总结一下我上面的示例代码的结果
const SELECT =
'SELECT logs.id, logs.object_id AS objectId, logs.object_type AS objectType, logs.object_name AS objectName, '.'logs.action, logs.action_date_time AS actionDateTime, logs.action_status AS actionStatus, logs.subject, logs.user, '.'logs.description, logs.ip, logs.param03_value AS userId, logs.param04_value AS userDisplayName ';
public function getNext($params)
{
// Hardcode for now
$limit = $params['limit'] ? (int) $params['limit'] : self::DEFAULT_LIMIT;
$limit++;
$select = self::SELECT;
$whereClause = $this->constructWhereClause($params);
$sql = "
$select FROM spoke.audit_logs AS logs
$whereClause
ORDER BY logs.action_date_time DESC, logs.id DESC
LIMIT $limit";
if ($params['cursor']) {
$now = new \DateTime();
$datetime = $now->getTimestamp();
if (isset($params['datetime'])) {
$datetime = $params['datetime'];
}
$whereClause = $this->constructWhereClause($params, 'logs1', false);
$sql = "
$select
FROM spoke.audit_logs logs1, spoke.audit_logs logs
WHERE logs1.id = logs.id
$whereClause
AND logs1.action_date_time <= '$datetime'
AND (logs1.id < {$params['cursor']} OR logs1.action_date_time < '$datetime')
ORDER BY logs1.action_date_time DESC, logs1.id DESC
LIMIT $limit";
}
$stmt = $this->getEntityManager()->getConnection()->query($sql);
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
const SELECT=
“选择logs.id,logs.object\u id作为objectId,logs.object\u type作为objectType,logs.object\u name作为objectName,”。“logs.action,logs.action\u date\u time作为actionDateTime,logs.action\u status作为actionStatus,logs.subject,logs.user,”。“logs.description,logs.ip,logs.param03\u value作为userId,logs.param04\u value作为userDisplayName”;
公共函数getNext($params)
{
//目前的硬代码
$limit=$params['limit']?(int)$params['limit']:self::DEFAULT_limit;
$limit++;
$select=self::select;
$whereClause=$this->constructWhereClause($params);
$sql=”
$select FROM speak.audit_日志作为日志
$where条款
按logs.action\u date\u time DESC订购,logs.id DESC
限额$LIMIT”;
if($params['cursor'])){
$now=new\DateTime();
$datetime=$now->getTimestamp();
if(isset($params['datetime'])){
$datetime=$params['datetime'];
}
$whereClause=$this->constructWhereClause($params,'logs1',false);
$sql=”
$select
从spoke.audit_日志1,spoke.audit_日志
其中logs1.id=logs.id
$where条款
和logs1.action_date_time您需要使用MySQL的CONVERT_TZ
功能来转换时区,例如:
SELECT CONVERT_TZ(action_date_time, 'CEST', 'PHT') FROM AuditLogs;
或者,您也可以提供时区差异,例如:
SELECT CONVERT_TZ(action_date_time,'+01:00','+08:00') FROM AuditLogs;
文档。您需要使用MySQL的CONVERT\u TZ
功能来转换时区,例如:
SELECT CONVERT_TZ(action_date_time, 'CEST', 'PHT') FROM AuditLogs;
或者,您也可以提供时区差异,例如:
SELECT CONVERT_TZ(action_date_time,'+01:00','+08:00') FROM AuditLogs;
文档。获取UTC日期时间列作为UNIX时间戳
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
来源如下:获取UTC日期时间列作为UNIX时间戳
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
来源如下:如果添加此选项,请选择CONVERT_TZ(logs.action_date_time,'CEST','PHT')作为actionDateTime,我在我的response@user3818576添加了另一个查询,请立即重试?如果添加此查询,请选择转换(logs.action\u date\u time,'CEST','PHT')作为actionDateTime,我在response@user3818576添加了另一个查询,是否立即尝试?我尝试转换此链接,但时间提前了2小时。但是我尝试了你给我的链接。我尝试转换此链接,但时间提前了2小时。但是我尝试了你给我的链接