我编写了一个代码,用于将存储在三个不同变量中的日期,月份和年份变量附加到数组中,并使用implode函数将其更改为适当的日期格式;但这并没有按预期显示输出。代码如下:
$year = 2012;
$month1 = $_POST["month1"];
$date = $_POST["date"];
$array[] = "{$year}{$month1}{$date}";
$imp = implode('/',$array);
echo $imp;
在这里,$date
和$month1
取自表格....输出显示为20121220
,但不显示为2012/12/20
。
上面的代码有什么问题?
$array[] = "{$year}{$month1}{$date}";
是数组的有效构造,但它不是您想要的构造。它创建一个带有一个由字符串组成的元素的数组。
使用内爆函数,您希望将几个不同的元素内爆为一个,因此日期的每个部分都应该是一个元素。喜欢这个:
$array = array($year, $month1, $date);
你没有把每个项目放在一个数组中。您正在创建单个字符串。把它放在一个数组是要做的:
$arr = array($year, $month1, $date);
但是,为什么不直接这样做
$result = "{$year}/{$month1}/{$date}";
只需使用sprintf()
$result = sprintf("%04d/%02d/%02d", $year, $month, $date);
您的
$array
未按预期设置。尝试:
$array = array($year, $month1, $date);
$imp = implode('/',$array);
echo $imp;
你试过吗..
$array = array($year,$month1,$date);
$imp = implode('/',$array);
$array[] = "{$year}{$month1}{$date}";
有几个问题:
1) 数组表示如下:
array($year, $month1, $date);
2) 数组分配时没有[]
所以你想说
$array = array($year, $month1, $date);