-3

我正在使用代码从日历中获取日期

if ($_POST){
    $m = $_POST['m'];
    $d = $_POST['d'];
    $y = $_POST['y'];

$event_date = $y."-".$m."-".$d;

日期的格式为 yyyy-md 我如何将格式更改为 yyyy-mm-dd 以便我可以插入数据库

4

7 回答 7

5
$time = strtotime( $event_date );
$myDate = date( 'Y-m-d', $time );

第一行转换为时间戳。第二行转换为您想要的日期格式

于 2012-09-03T11:37:00.527 回答
1

一种可能性是date()结合使用mktime()

$event_date = date('Y-m-d', mktime(0, 0, 0, $m, $d, $y));
于 2012-09-03T11:36:52.353 回答
0

您可以使用 strftime 并使用 checkdate 执行检查:

if ($_POST){

  $m = $_POST['m'];
  $d = $_POST['d'];
  $y = $_POST['y'];

  $event_date = checkdate($m, $d, $y) ? strftime('Y-m-d', mktime(0, 0, 0, $m, $d, $y)) : null;  
}
于 2012-09-03T11:42:53.857 回答
0
 echo(date("Y-m-d", strtotime($event_date)));
于 2012-09-03T11:43:44.830 回答
0

您可以在使用它之前对其进行转换,如下所示:

if($_POST['m']<10)
{
    $m='0'.$_POST['m'];
}
else
{
    $m=$_POST['m'];
}
于 2012-09-03T11:36:25.377 回答
0
if ($_POST){
    $m = $_POST['m'];
    $d = $_POST['d'];
    $y = $_POST['y'];

if($m<10)
{
  $m="0".$m;
}
if($d<10)
{
  $d="0".$d;
}
$event_date = $y."-".$m."-".$d;
}
于 2012-09-03T11:38:30.347 回答
0

substr("00" . $m, -2)工作吗?

不要使用 PHP,所以语法可能是错误的,但方法应该很明显,在开头添加 00 然后取最后 2 个字符

于 2012-09-03T11:41:17.623 回答