Php日期功能

时间:2009-11-23 05:50:10

标签: php date

对php日期函数有一些疑问....这里就是..

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

操纵这是php我使用以下代码...

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

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

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

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

我无法理解我在这里做错了...如果有人清除了这件事会很高兴....

谢谢和问候

3 个答案:

答案 0 :(得分:1)

来自documentation

  

该函数需要一个包含美国英语日期格式

的字符串

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

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

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

答案 1 :(得分: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));

答案 2 :(得分:0)

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>