Php 如何在Mysql数据库中插入AM和PM?
这是我的值,我将在数据库中插入Php 如何在Mysql数据库中插入AM和PM?,php,mysql,laravel,Php,Mysql,Laravel,这是我的值,我将在数据库中插入 [phoneinterview] => 2018-05-16 10:28 PM 在我的数据库中有这样的字段 phoneinterview timestamp 但它是这样的: 2018-05-16 10:28:00 实际上我想这样插入: 2018-05-16 10:28 PM public function getPhoneinterviewAttribute() { return \Carbon\Carbon::now(
[phoneinterview] => 2018-05-16 10:28 PM
在我的数据库中有这样的字段
phoneinterview timestamp
但它是这样的:
2018-05-16 10:28:00
实际上我想这样插入:
2018-05-16 10:28 PM
public function getPhoneinterviewAttribute() {
return \Carbon\Carbon::now(
$this->attributes['phoneinterview']
)->format('g:i A');
}
嗯。当您选择时间戳或日期时间数据类型来存储日期时,它不会在数据库表字段中存储AM和PM值。最好的解决方案是检索日期并将其与AM/PM一起手动转换为日期和时间
另一种解决方案是使用varchar的数据类型而不是时间戳,但这是不推荐的。如果在数据库中使用
datetime
字段,则不能使用,但如果将字段更改为varchar
,则可以按您喜欢的方式保存它。我建议不要这样做。为什么要保存格式化的时间?最佳做法是将日期保存在datetime
字段中,然后在需要显示日期时按所需格式显示。在Laravel中,您可以使用如下所示的变异体:
2018-05-16 10:28 PM
public function getPhoneinterviewAttribute() {
return \Carbon\Carbon::now(
$this->attributes['phoneinterview']
)->format('g:i A');
}
另一方面:当您扩展到人们不使用AM/PM的区域时,您可以轻松地将其格式化为他们的区域设置。MySQL使用格式
'Y-m-d H:i:s'
存储日期,因此如果您使用的是其他格式,则需要先将其转换为此格式。这可以通过以下方式实现:
这将创建一个DateTime对象,您可以轻松地为MySQL设置格式:
$date->format('Y-m-d H:i:s');
当您使用
datetime
数据类型时,它正在存储2018-05-16 10:28:00
。但是,如果要存储AM/PM
,则需要使用varchar
数据类型
我建议您使用->format()代码>获取时间戳数据时。这将根据您的意愿转换日期时间格式
现在,当您想在时间之后显示AM/PM
时,可以像这样使用:->格式('g:ia')代码>这将显示时间,如10:28 PM
希望这对你有帮助 您用于存储日期的数据类型是什么?是datetime吗?在我的数据库中,我使用时间戳来存储数据。您可以使用varchar
datatype,但这对它不好。您可以使用->format()
来显示它!比如:->格式('g:ia')代码>谢谢大家现在它工作正常,在插入数据库时,我将h:I:s更改为h:I:s,在检索这些值时,我使用了g:I。从中得到的一般教训是,您应该始终以计算机可读的格式存储数据,并且仅在您希望显示数据时才将其转换为人类可读的格式。