Php форматирует массив дат - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь создать функцию, которая форматирует даты из вложенных массивов, лежащих в одном массиве. Я могу найти и отобразить значения в массиве, однако я стараюсь отформатировать дату так, как я хочу ее распечатать. То, как мой код настроен, у меня есть одна функция, которая входит в массив, перебирает каждый из вложенных массивов и распечатывает значение, прикрепленное к ключу, который он должен искать.

Это прекрасно работает, но моя другая функция предназначена для того, чтобы взять дату и отформатировать ее так, как я хочу, чтобы она распечатывалась с помощью функции даты и просто не ходила. У меня есть несколько идей относительно того, почему это так, но я знаю, что не знаю, поэтому я надеюсь, что кто-то может помочь. Спасибо заранее, я ценю любого, кто пытается помочь мне в этом. Я новичок в php, так что это был интересный набег.

Я использовал функции php date, strtotime и date_create_from_format, чтобы попытаться взять дату и отформатировать ее в дату так, как я хочу.

// Example clip from array
$Full_List_Of_Recover_Items = array (
  0 => 
  array (
'ActionTimeStamp' => '2018-07-23 15:17:23'
  )
);


//  End format would look like July 23, 2018 3:17pm


<?php

function valGet($arr, $value)
{
    foreach($arr as $row)
    {
        foreach($row as $key => $val)
        {
            if ($key == $value)
            {
                if ($val == NULL)
                    echo "empty";
                else
                echo $val;
            }
        }
    }
}
function timeFormat($timeStamp)
{
// split the array value to set up date
$first = explode(" ", $timestamp);
$second = explode("-", $first);
$third = explode(":", $second);

//  format the date and convert it attempt
$stringTime = strtotime("D, F, d, Y, g, i", $timestamp);
$date = date_create_from_format("Y-m-d H:i:s");
echo date($date($stringTime));

}

?>


// invocation on html

  <p>
    <?php
        echo timeFormat(valGet($Full_List_Of_Recover_Items, 'ActionTimeStamp'));

    ?>
    </p>

1 Ответ

0 голосов
/ 06 июня 2019

Вам нужно изменить функцию timeFormat. Просто используйте strtotime:

$timeStamp = '2018-07-23 15:17:23';
echo date("F j, Y, g:i a",  strtotime($timeStamp)); // prints July 23, 2018, 3:17 pm

И здесь вы можете увидеть документацию для всех видов форматов: Дата руководства по PHP

Ссылка: strtotime

...