【问题标题】:Date entry in php 5.2php 5.2 中的日期输入
【发布时间】: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 并解决了这个问题。

标签: php mysql sql date


【解决方案1】:

1&1 在兼容性方面确实令人头疼。我不知道您使用什么代码来输入(可能是简单的文本输入),但我猜这是他们的服务器的问题。

1970 年 1 月 1 日是 UNIX 纪元的开始。这意味着在某些时候,您的代码会从其中一个函数中获得 0 值。

您能否发送一个 $_REQUEST 和 $_POST 的 print_r() 以便我们看看那里发生了什么?您是否有错误和警告报告?

【讨论】:

  • 感谢 Cesar,我实际上设法将 php 升级到 5.4 并且刚刚使用:}; if(isset($_REQUEST['ValidTo'])) { $myDateTime = DateTime::createFromFormat('d/m/Y', $_REQUEST['ValidTo']); $ValidTo = $myDateTime->format('Y/m/d H:i:s');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 2015-01-06
  • 1970-01-01
相关资源
最近更新 更多