对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
我无法理解我在这里做错了...如果有人清除了这件事会很高兴....
谢谢和问候
答案 0 :(得分:1)
该函数需要一个包含美国英语日期格式
的字符串
在美国,月份必须在日期之前,例如毫米/日/年
这是没有正则表达式的解决方法:
$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>