在php中格式化手动构造的日期

时间:2013-07-26 11:21:50

标签: php

我通过循环构建了一系列日期:

$months = array();
while($j<=12)
{
    $months[] = '2013- .$j . '-01';
    $j++
}

这就像我想要的那样回响。但是,当我使用date(F, $months[$j])函数时,它每次都会在1月份出现。这是因为它不是公认的日期格式吗?我怎么能解决这个问题?

3 个答案:

答案 0 :(得分:2)

您是否在此处复制之外的地方递增$j?否则,你有答案。

$months = array();
$j = 1;
While($j<=12)
{
    $months[] = '2013-' .$j . '-01';
    $j++;
}

另外,你应该传递日期,而不是时间戳:

date('F', strtotime($months[$j]))

此外,您可能已经考虑到$ j从0开始,但是您将它们存储在索引0的$months内。所以您将其更改为:

$months = array();
$j = 1;
While($j<=12)
{
    $months[$j] = '2013-' .$j . '-01';
    $j++;
}

答案 1 :(得分:1)

使用www.php.net/strtotime

date('F',strtotime($months[$j]))

答案 2 :(得分:0)

使用此:

$months = array();
$j=1;
While($j<=12)
{
$months[] = '2013-' .$j . '-01';
$j++;
}

$date = new DateTime($months[2]);
echo $date->format('F');

参考:http://www.php.net/manual/en/datetime.format.php