как преобразовать формат времени из числа в строку? - PullRequest
0 голосов
/ 08 января 2012

я извлек из даты и времени созданного поля, как этот формат 2011-3-10 17:26:50, и я хочу преобразовать в этот формат March 13, 2010 как я могу сделать это с php или cakephp 1.3

     <?php

  $i = 0;
foreach($articles as $$article ):

                 ?>
                <tr>
                    <td><?php echo $article['Article']['title']; ?></td>
                    <td><?php echo $article['Article']['created'];;?></td>
                </tr>
                <?php endforeach; ?>

Ответы [ 5 ]

2 голосов
/ 08 января 2012

Полагаю, вы имеете в виду «извлеченный», как при извлечении из MySQL. Самый простой / быстрый (но также самый любимый взорвать и пнуть свою собаку) - это просто сделать

$timestamp = strtotime($date_from_database);
$formatted = date('F j, Y', $timestamp);
2 голосов
/ 08 января 2012

PHP имеет функцию strtotime($string), которая будет принимать строки даты / времени в различных форматах (включая формат даты и времени MySQL) и преобразовывать их в целое число метки времени Unix (количество секунд, прошедшее с 1970-01-0100:00:00 UTC ).Затем вы можете использовать date('F j, Y', $time) для преобразования этого целого числа в любое желаемое строковое представление, используя найденные токены здесь

Двумя дополнительными соображениями являются локализация и осведомленность о часовом поясе.Я не буду вдаваться в первый, так как кажется, что он вам не нужен, но там, где важен часовой пояс, может быть проще использовать PHP-классы DateTime, которые вы можете прочитать о [здесь] .Вот пример:

<?php

// for example, if you're storing times in UTC in your DB
$dbTimezone = new DateTimeZone('UTC');

// we'll use this for displaying times in the user's timezone.
// for example, my timezone:
$displayTimezone = new DateTimeZone('America/Toronto');

foreach ($articles as $article):
    // Create a timezone-aware DateTime object from your article's creation date
    $dt = new DateTime($article['Article']['create'], $dbTimezone);
    $dt->setTimezone($displayTimezone);
    echo $dt->format('F j, Y');
endforeach;
0 голосов
/ 08 января 2012

Вы можете легко использовать Cakephp Time Helper.

//Add to appcontroller or articles_controller
var $helpers = array('Time');

//Add this to view file
echo $this->Time->niceShort($article['Article']['created']); 

Помимо niceShort есть еще варианты, которые могут лучше соответствовать вашим потребностям. Проверьте документацию CakePHP.

Спасибо

0 голосов
/ 08 января 2012

Это решит это:

$date = date_create_from_format('Y-m-j H:i:s', $article['Article']['created']);
echo date_format($date, 'F d, Y');
0 голосов
/ 08 января 2012

как то так? Я предполагаю ваш формат даты и времени. вам может понадобиться настроить его.

echo date('F d, Y',date_create_from_format('Y-n-d h:i:s','2011-3-10 17:26:50'));

date_create_from_format

...