【问题标题】:Php Date FunctionPHP日期函数
【发布时间】:2009-11-23 05:50:09
【问题描述】:

有一些关于 php 日期函数的问题.. 就这样吧..

我使用 jquery 的 datepicker 以“日/月/年”的格式从用户那里获取日期。例如。 2009 年 11 月 23 日是 23/11/2009。

要操作这是 php,我使用以下代码...

我将日期字符串存储在变量 $date 中

 $dateOf =  date ('(d-m-Y)', strtotime($date));

我遇到的问题是,当我将日期字符串传递给 strtotime 函数时,它将代表月份的数字作为代表日期的数字。

例如: 当我将日期指定为 24/12/2009 strtotime 将其视为 2009 年 12 月 24 日

我不明白我在这里做错了什么...如果有人能解决这个问题会很高兴....

感谢和问候

【问题讨论】:

    标签: php date


    【解决方案1】:

    在 PHP 方面,您可以通过以下方式修复:

    $date = "24/12/2009";
    $date = preg_replace('/^(\d{1,2})\/(\d{1,2})\/(\d{2,4})$/','\2/\1/\3', $date);
    
    $dateOf =  date ('(d-m-Y)', strtotime($date));
    

    这只是将第一场和第二场比赛的位置交换为24/12/2009 并使其成为12/24/2009

    编辑:

    没有正则表达式:

    $date = "24/12/2009";
    $date = explode('/', $date);
    $date = implode('/', array($date[1], $date[0], $date[2]));
    
    $dateOf =  date ('(d-m-Y)', strtotime($date));
    

    【讨论】:

    • 很酷的解决方法... :-) 没有正则表达式有什么办法吗...?
    • 我更新了我的答案以显示替代方案。似乎仍然是一种解决方法,是吧?
    • 两者都很好...对正则表达式一无所知...!!我以前使用过这种爆炸技术,但我认为 php,虽然很酷,但会将它包含在一个日期函数中,从而为我们节省额外的代码......!!谢谢大家,您宝贵的时间和建议...
    【解决方案2】:

    来自documentation

    函数期望得到一个包含美国英语日期格式的字符串

    在美国,月份必须在日期之前,例如月/日/年

    这是一个没有正则表达式的解决方法:

    $date = explode('/', $date);
    $dateOf = date('(d-m-Y)', strtotime($date[1].'/'.$date[0].'/'.$date[2]));
    

    【讨论】:

    • 抱歉,它“是”一个函数,但它已被贬值,如果您不使用正则表达式,explode 是首选方法。
    【解决方案3】:

    strtotime 解析英文日期 这是一个展示如何做到这一点的示例:

    <html>
    <head>
    <title>Php Date Function</title>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="jquery.ui.all.packed.js"></script>
    <link rel="stylesheet" src="themes/default/ui.all.css"/>
    <script type="text/javascript">
    jQuery(document).ready(function($) {
        $('#dpicker').datepicker({
            dateFormat: "dd/mm/yy"
        });
    })
    </script>
    </head>
    <body>
        <form action="#" method="POST">
            <input size="25" readonly="readonly" type="text" value="" id="dpicker" name="dpicker" />
            <br/>
            <input type="submit" id="validBtn" value="OK" name="valid" />
        </form>
        <div>
        <?php 
            $d = (isset($_POST['dpicker']) ? $_POST['dpicker'] : null);
            if ($d) {
                $ds = explode("/", $d);
                $dte = date('(d-m-Y)', mktime(0, 0, 0, $ds[1], $ds[0], $ds[2]));
                echo '<p>Date: ' . $dte . '</p>';
            }
        ?>
        </div>
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-13
      • 1970-01-01
      • 2012-01-11
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多