从数组重新排列值

时间:2016-02-22 23:55:06

标签: php arrays date

我的阵列

<?
    $date = array('16-01-14','16-01-28','16-02-14','16-02-28','16-03-14','16-03-28','16-04-14','16-04-28',
'16-05-14','16-05-28','16-06-14','16-06-28','16-07-14','16-07-28','16-08-14','16-08-28','16-09-14','16-09-28','16-10-14','16-10-28',
'16-11-14','16-11-28','16-12-14','16-12-28');
    $currentdate = date('y-m-d');

    ?>

以下是我的代码从数组中选择值的样子,但是当它从数组中选择它时,它没有将其格式化为正确的格式有没有办法可以像格式一样回显结束日期这个mm/dd/yy代替yy-mm-dd谢谢你。

<?php
$statement_date_timestamp = strtotime($statement_date);
$nextdate = "";
for($i = 0; $i<sizeof($date); $i++)
{
    if(strtotime($date[$i]) == $statement_date_timestamp)
        $nextdate = $date[$i+1];
}
echo'End Date:';
echo $nextdate;
?>

3 个答案:

答案 0 :(得分:0)

使用date()功能以您想要的任何方式格式化时间戳:

echo date('d/m/y', strtotime($nextdate));

答案 1 :(得分:0)

使用输入格式和输入日期创建DateTime实例,然后转换为输出格式:

$nextdate = DateTime::createFromFormat('y-m-d', $nextdate)->format('m-d-y');

答案 2 :(得分:0)

我认为您的所有代码都可以缩短:

$statement_date = date( 'y-m-d', strtotime( $statement_date ) );
$date_found     = array_search( $statement_date, $date );
$nextdate       = $date[$date_found+1];

echo date( 'm/d/y', strtotime($nextdate) );

我使用date()格式化$statement_date,因为我不知道其格式,但如果是y-m-d,您可以直接搜索它。

array_search()返回相应的密钥,然后获得$nextdate递增密钥1。

要格式化$nextdate,您可以根据其他答案使用date()DateTime->format()