【发布时间】:2013-12-13 20:13:58
【问题描述】:
这里是超级菜鸟,如果有任何明显或错误的地方,我们深表歉意!
我有一个创建凭证的表单。它有一个部分,我使用日期选择器选择有效的起始日期和结束日期,显示起始日期和结束日期也是如此。
我的 php 在 5.3 的测试服务器上工作,但 1and1 服务器有 5.2,现在当我输入日期时,它只是忽略它并添加 01/01/1970(日期选择器上的第一个日期)。
我通过一些更新修复了这个问题,您可以在下面看到这些更新,我已将其注释掉。奇怪的是,现在添加了 Valid From 和 Display From 日期,但 Valid To 和 Display To 日期保持在 01/01/1970。
有什么想法吗?
if(isset($_REQUEST['Name'])) {$Name=$_REQUEST['Name']; };
if(isset($_REQUEST['ValidFrom'])) {
//$myDateTime = DateTime::createFromFormat('d/m/Y', $_REQUEST['ValidFrom']);
$time = strtotime($_REQUEST['ValidFrom']); //Added - 10/12/13 - Converts string to Date
$date = date('Y/m/d H:i:s',$time); //Added - 10/12/13 - Formats date
$myDateTime = new DateTime($date); //Added - 10/12/13 - Adds date to object
$ValidFrom = $myDateTime->format('Y/m/d H:i:s');
};
if(isset($_REQUEST['ValidTo'])) {
//$myDateTime = DateTime::createFromFormat('d/m/Y', $_REQUEST['ValidTo']);
$time = strtotime($_REQUEST['ValidTo']); //Added - 10/12/13
$date = date('Y/m/d H:i:s',$time); //Added - 10/12/13
$myDateTime = new DateTime($date); //Added - 10/12/13
$ValidTo = $myDateTime->format('Y/m/d H:i:s');
};
if(isset($_REQUEST['DisplayFrom'])) {
//$myDateTime = DateTime::createFromFormat('d/m/Y', $_REQUEST['DisplayFrom']);
$time = strtotime($_REQUEST['DisplayFrom']); //Added - 10/12/13
$date = date('Y/m/d H:i:s',$time); //Added - 10/12/13
$myDateTime = new DateTime($date); //Added - 10/12/13
$DisplayFrom = $myDateTime->format('Y/m/d H:i:s');
};
if(isset($_REQUEST['DisplayTo'])) {
//$myDateTime = DateTime::createFromFormat('d/m/Y', $_REQUEST['DisplayTo']);
$time = strtotime($_REQUEST['DisplayTo']); //Added - 10/12/13
$date = date('Y/m/d H:i:s',$time); //Added - 10/12/13
$myDateTime = new DateTime($date); //Added - 10/12/13
$DisplayTo = $myDateTime->format('Y/m/d H:i:s');
};
【问题讨论】:
-
我还尝试将日期格式更改为 ('yy/mm/dd H:i:s');但这会使两个日期再次停止工作。
-
1and1 应该为自己安装了这样一个 old 版本的 PHP 而感到羞愧。可悲的。
-
哈哈同意!事实上,我只是设法将它升级到 php 5.4 并解决了这个问题。