不确定我做错了什么。我有一个laravel 8应用程序,我在其中以UTC存储时间,并在postgresql中存储timestamp_no_timezone。当我在数据库中查看时间时,它显示的是今天的日期,时间是13:45。当我使用vue时刻并显示时区设置为America/New_York的时间时,它仍然显示下午1:45,并且应该是上午8:45,带有偏移量。我会错过什么?我甚至做了一个时区的控制台日志,显示的是美国/纽约。
这是我使用的表达式:
{{ [ timesheet.start, "YYYY-MM-DD HH:mm:ss" ] | moment("timezone", "America/New_York", "h:mm A") }}
在发送响应时将存储的dateTime转换为epoch。
如何将dateTime转换为epoch有多种方法(在epoch中发送dateTime作为响应(。
添加您的型号
protected $casts = ['datetime_field' => 'timestamp']
在Laravel类中添加此方法,从中发送响应
protected function toEpoch($datetime )
{
if (gettype($datetime) == 'string') {
$datetime = new DateTime($datetime);
return Carbon::instance($datetime)->format('U');
} else if ($datetime instanceof Carbon) {
return $datetime->format('U');
} else if ($datetime != null) {
return Carbon::instance($datetime)->format('U');
}
}
}
在vue项目
{{new Date(epoch*1000)}}