date()如果我想将结果插入MySQL datetime类型列,那么在PHP中传递给函数的正确格式是什么?
我一直在尝试,date("Y-M-D G:i:s")但每次只插入"0000-00-00 00:00:00".
Mar*_*iot 641
问题是你正在使用'M'和'D',这是一个文本表示,MySQL期望格式的数字表示2010-02-06 19:30:13
尝试:date("Y-m-d H:i:s")使用数字等价物.
编辑:切换G到H,虽然可能没有影响,但您可能希望使用带有前导0的24小时格式.
Tim*_*tle 103
从php的date()手册页的评论:
<?php $mysqltime = date ("Y-m-d H:i:s", $phptime); ?>
Run Code Online (Sandbox Code Playgroud)
你的'Y'是正确的 - 这是一整年,但'M'是一个三个月的月份,而'm'是两个月的月份.与'D'而不是'd'相同的问题.'G'是1或2位小时,其中'H'在需要时始终具有前导0.
JAL*_*JAL 40
这是一个替代解决方案:如果您将PHP中的日期作为时间戳,则绕过使用PHP处理它并让DB负责使用该FROM_UNIXTIME函数对其进行转换.
mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)
mysql> select * from a_table;
+---------------------+
| a_date |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+
Run Code Online (Sandbox Code Playgroud)
小智 26
我使用以下PHP代码创建一个插入MySQL DATETIME列的变量.
$datetime = date_create()->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
这将保留服务器的当前日期和时间.
小智 11
$date_old = '23-5-2016 23:15:23';
//Date for database
$date_for_database = date ("Y-m-d H:i:s", strtotime($date_old));
//Format should be like 'Y-m-d H:i:s'`enter code here`
Run Code Online (Sandbox Code Playgroud)
格式化MySQL DATETIME列的时间戳:
strftime('%Y-%m-%d %H:%M:%S',$timestamp);
Run Code Online (Sandbox Code Playgroud)
小智 8
使用PHP格式化MySQL datetime
$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
Run Code Online (Sandbox Code Playgroud)
我用这个函数(PHP 7)
function getDateForDatabase(string $date): string {
$timestamp = strtotime($date);
$date_formated = date('Y-m-d H:i:s', $timestamp);
return $date_formated;
}
Run Code Online (Sandbox Code Playgroud)
旧版本的PHP(PHP <7)
function getDateForDatabase($date) {
$timestamp = strtotime($date);
$date_formated = date('Y-m-d H:i:s', $timestamp);
return $date_formated;
}
Run Code Online (Sandbox Code Playgroud)
如果不使用时间戳,则不需要使用PHP中的date()方法.如果dateposted是datetime列,您可以像这样插入当前日期:
$db->query("INSERT INTO table (dateposted) VALUES (now())");
Run Code Online (Sandbox Code Playgroud)
在 PHP7+ 中使用DateTime类:
function getMysqlDatetimeFromDate(int $day, int $month, int $year): string
{
$dt = new DateTime();
$dt->setDate($year, $month, $day);
$dt->setTime(0, 0, 0, 0); // set time to midnight
return $dt->format('Y-m-d H:i:s');
}
Run Code Online (Sandbox Code Playgroud)