将时间戳日期重新转换回原始格式(编辑时)PHP MySQL

将时间戳日期重新转换回原始格式(编辑时)PHP MySQL,php,mysql,date,format,Php,Mysql,Date,Format,好的,所以我已经设法将HTML中显示的日期格式(显示时)转换为我想要的格式(dd/mm/yyy)…但是,用户也可以通过表单更改日期 这就是目前的设置方式。首先,从YYYY-MM-DD到DD/MM/YYYY的转换,然后以HTML显示: $timestamp=strottime($duedate); 回送日期('d/m/Y',$timestamp) 现在,当用户选择更新到期日时,已经存储的值将被绘制并显示在我的文本字段中(使用与上面完全相同的代码)。。到目前为止一切都很好 但是,当我的用户运行更新脚

好的,所以我已经设法将HTML中显示的日期格式(显示时)转换为我想要的格式(dd/mm/yyy)…但是,用户也可以通过表单更改日期

这就是目前的设置方式。首先,从YYYY-MM-DD到DD/MM/YYYY的转换,然后以HTML显示:

$timestamp=strottime($duedate); 回送日期('d/m/Y',$timestamp)

现在,当用户选择更新到期日时,已经存储的值将被绘制并显示在我的文本字段中(使用与上面完全相同的代码)。。到目前为止一切都很好

但是,当我的用户运行更新脚本(单击submit)时,新的截止日期不会被存储,在我的数据库中,它被视为“0000-00-00”。我知道我需要将它转换回MySQL想要的正确格式,以便保存它,但我不确定如何做到这一点。这是我目前在更新脚本(截止日期)中的内容:


有人能告诉我正确的方向吗?当处理新的日期时,MySQL会将其转换回可接受的格式。我感谢你给予的任何帮助!谢谢。

这应该会有帮助。尝试执行相同的转换,但返回MySQL所需的格式。查看函数中的格式

 $duedate = date('Y-m-d', strtotime($_POST['duedate']));
 // Alternate, more accurate version.
 $date_part = explode("/", $_POST['duedate']);
 $duedate = date('Y-m-d', mktime(0, 0, 0, $date_part[1], $date_part[0], $date_part[2]));

谢谢圣约翰,我要试一试!我可以问一下你把Y-m'd'放在哪里了吗?这是错别字吗?那肯定是错别字。应该是Y-m-d.@Jess那肯定是个打字错误。它应该是“Y-m-d”好的,只是要指出的是,这在一开始确实“似乎”起作用,但更新后显示的实际日期会切换月份和日期!!?例如,表格中的值设置为“02/01/2011”。我做了一个echo$查询;得到:duedate='1970-02-01'。这显然改变了在HTML中显示的日期的th值。这有什么原因吗?我必须检查以确保我所有的日期格式正确吗?
 $duedate = date('Y-m-d', strtotime($_POST['duedate']));
 // Alternate, more accurate version.
 $date_part = explode("/", $_POST['duedate']);
 $duedate = date('Y-m-d', mktime(0, 0, 0, $date_part[1], $date_part[0], $date_part[2]));