我有一个日期字符串:
25/08/2012
在这里,我试图将它转换为DateTime对象,以便将其保存到MySQL数据库中。我的后端架构有一个DateOfPrint date
列,可以接收这些数据。
以下是我尝试过的:
$eventDate = DateTime::createFromFormat('d/m/y', $fecha->innertext);
echo $eventDate;
echo
语句在屏幕上不显示任何内容,当试图将其保存到数据库时,该列中不会保存任何内容。
有什么建议吗?
您的$eventDate
包含一个布尔值(false),该值打印为空字符串。
您需要使用大写Y.
Y nbsp;一年的完整数字表示,4位数字 nbsp 示例:1999或2003
y nbsp;一年的两位数表示 nbsp 示例:99或03
您必须调用DateTime::format()
例如
<?php
$fecha = new StdClass;
$fecha->innertext = '25/08/2012';
$eventDate = DateTime::createFromFormat('d/m/Y', $fecha->innertext);
if ( false===$eventDate ) {
die('invalid date format');
}
echo $eventDate->format('Y-m-d');
打印
2012-08-25
您需要将其格式化为MySQL列,然后才能插入:
// Need upper case Y here, thanks to VolkerK for pointing that out
$eventDate = DateTime::createFromFormat('d/m/Y', $fecha->innertext);
$eventDate = $eventDate->format( 'Y-m-d'); // I think this is the correct format
然后可以使用$eventDate
将日期保存到数据库中。
$eventDate
是一个对象,而不是字符串。您需要访问代码中元素的属性,以便能够将其值正确插入表或将其回显。注意,可以使用var_dump($eventDate);
,它应该向您显示有关该对象的所有信息。
您可以在DateTime类上引用PHP docsm来获得可用的属性,并查看哪一个最适合您的需求。
$eventDate = DateTime::createFromFormat('d/m/Y', $fecha->innertext);
echo $eventDate->format('Y-m-d');
简短回答
$st_time = date('Y-m-d H:i',$yourdate);
如果你只想在年月日使用这个
$st_time = date('Y-m-d',$yourdate);