-1

我编写了一个代码,用于将存储在三个不同变量中的日期、月份和年份变量附加到一个数组中,并使用 implode 函数将其更改为适当的日期格式;但这并没有按预期显示输出。代码如下:

$year = 2012;
$month1 = $_POST["month1"];
$date = $_POST["date"];
$array[] = "{$year}{$month1}{$date}";   
$imp = implode('/',$array);
echo $imp;

这里$date$month1取自表单....输出显示为20121220但不是2012/12/20

上面的代码有什么问题?

4

6 回答 6

5
$array[] = "{$year}{$month1}{$date}"; 

是数组的有效构造,但它不是您想要的构造。它创建一个包含一个元素的数组,该元素由一个字符串组成。

使用您的 implode 函数,您希望将几个不同的元素内爆为一个,因此日期的每个部分都应该是一个元素。像这样:

$array = array($year, $month1, $date);
于 2012-05-10T16:47:09.233 回答
3

您没有将每个项目都放在一个数组中。您正在创建一个字符串。说一个数组就是这样做的:

$arr = array($year, $month1, $date);

但是,为什么不只是做

$result = "{$year}/{$month1}/{$date}";   
于 2012-05-10T16:47:30.257 回答
2

只需使用sprintf()

$result = sprintf("%04d/%02d/%02d", $year, $month, $date);
于 2012-05-10T16:49:12.150 回答
1

$array的设置不符合你的预期。尝试:

$array = array($year, $month1, $date);
$imp = implode('/',$array);
echo $imp;
于 2012-05-10T16:47:53.537 回答
1

你有没有尝试过..

$array = array($year,$month1,$date);   
$imp = implode('/',$array);
于 2012-05-10T16:48:13.707 回答
0

$array[] = "{$year}{$month1}{$date}";有几个问题:

1) 数组表示如下:

array($year, $month1, $date);

2) 数组的分配没有[]

所以你想说

$array = array($year, $month1, $date);
于 2012-05-10T16:50:32.787 回答