Как преобразовать несколько временных меток в строке в формат гггг / мм / дд чч: мм: сс? - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть значения в переменной, как показано ниже в формате, и я хочу преобразовать это значение в yyyy/mm/dd hh:mm:ss формат:

$timestamps = "1538141400,1538141520,1538141640,1538141760,1538141880,1538142000,1538142120,1538142240,1538142360,1538142480,1538142600,1538142720,1538142840,1538142960,"

Ожидаемый результат должен выглядеть следующим образом "

$timestamps = "yyyy/mm/dd hh:mm:ss, yyyy/mm/dd hh:mm:ss yyyy/mm/dd hh:mm:ss, yyyy/mm/dd hh:mm:ss so on"

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Необходимо преобразовать строку в массив, используя explode(), и выполнить цикл по массиву, используя array_map().В функции преобразуйте каждую метку времени в дату и время, используя date(), а затем преобразуйте массив результатов в строку, используя implode()

$dates = implode(",", array_map(function($item){
    return date("Y/m/d h:m:s", (int)$item); 
}, explode(",", $timestamps)));

Проверьте результат в demo

Также вы можете использовать регулярные выражения в preg_replace_callback() для выполнения этой работы.

$dates = preg_replace_callback("/\d+/", function($item){
    return date("Y/m/d h:m:s", (int)$item[0]); 
}, $timestamps);
0 голосов
/ 30 сентября 2018
  • Преобразование строки через запятую в массив с помощью функции explode () .
  • Цикл в массиве для преобразования в строки даты и времени.Используйте функцию date .Требуется метка времени (по умолчанию текущее время) и строка формата.Возвращает строку datetime согласно строке входного формата.
  • Используйте функцию implode () , чтобы снова получить строку через запятую, используя преобразованный массив.

Попробуйте:

// convert $timestamps string to array
$timestamps_arr = explode(',', $timestamps);

$datetimestring_arr = array(); // initialize array for datetime strings
// Loop over the array to convert into datetime string
foreach ($timestamps_arr as $timestamp) {

    // convert the timestamp to datetime string
    $datetimestring_arr[] = date('Y/m/d H:i:s', $timestamp); 

}

// convert it back to comma separated string
$output = implode(',', $datetimestring_arr);

// display the output
echo $output;

Подробности :

  • Y Полное числовое представление года, 4 цифрыПримеры: 1999 или 2003
  • m Числовое представление месяца с ведущими нулями от 01 до 12
  • d День месяца, 2 цифры с ведущими нулями от 01 до 31
  • H 24-часовой формат часа с ведущими нулями от 00 до 23
  • i Минуты с ведущими нулями от 00 до 59
  • s Секунды с ведущими нулямиОт 00 до 59

Дополнительные параметры форматирования можно проверить по Документация PHP

...