Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод даты формата DATETIME
 
 автор: ZC   (11.07.2009 в 02:42)   письмо автору
 
 

Функция форматирования даты MySQL DATETIME в более читабельный вариант. Может кому пригодится.

<?php
function obtaindate($strdate)
{
    
date_default_timezone_set('UTC');
    
    
$date explode(" "$strdate);    
    
$firstpart explode("-"$date[0]);
    
$secondpart explode(":"$date[1]);
    
    
$past['year']         =     $firstpart[0];
    
$past['month']         =     $firstpart[1];
    
$past['day']         =     $firstpart[2];    
    
$past['hours']         =     $secondpart[0];
    
$past['minutes']     =     $secondpart[1];
    
$past['seconds']     =     $secondpart[2];
    
    
$present['year']     =     date("Y");
    
$present['month']     =     date("m");
    
$present['day']     =     date("d");    
//    $present['hours']     =     date("H");
//    $present['minutes'] =     date("i");
//    $present['seconds'] =     date("s");
    
    
$yesterday             date('d'strtotime('-1 day'));
    
    if (
$past['year'] = $present['year'] and $past['month'] = $present['month'] and $past['day'] == $present['day'])
    {
        
$result "В ".$past['hours'].":".$past['minutes']."";
    }
    else if (
$past['year'] = $present['year'] and $past['month'] = $present['month'] and $past['day'] = $yesterday)
    {
        
$result "Вчера в ".$past['hours'].":".$past['minutes']."";
    }
    else
    {
        
$result "".$past['day'].".".$past['month'].".".$past['year']." в".$past['hours'].":".$past['minutes']."";
    }
    
    return 
$result;
}

echo 
obtaindate("2009-07-11 01:46:00");
?>

  Ответить  
 
 автор: Trianon   (11.07.2009 в 08:22)   письмо автору
 
   для: ZC   (11.07.2009 в 02:42)
 

попытка подогнать время в рамки текущих суток как-то не вяжется с выбором UTC-зоны...
Впрочем, каждому своё.

  Ответить  
 
 автор: Николай2357   (11.07.2009 в 10:37)   письмо автору
 
   для: ZC   (11.07.2009 в 02:42)
 

>Функция форматирования даты MySQL DATETIME в более читабельный вариант
Не уловил тонкости... А почему DATE_FORMAT не подходит для этого?

  Ответить  
 
 автор: kosta_in_net   (12.07.2009 в 12:10)   письмо автору
 
   для: ZC   (11.07.2009 в 02:42)
 

я использовал такой вариант (дата хранится в поле "date_create" типа TIMESTAMP):
list($year, $month, $day,$time) = split ('[-[:space:]]', $sql_ar['date_create']);
echo "<p>$day.$month.$year</p>\r\n";
Просто формат даты не использовал, так как sql не дает дату в виде таймштампа. Может я не прав, и можно было обойтись форматом, но sql выдает дату так: "2009-07-11 01:46:00". Разве это можно просто отформатировать?

П. С.
Ща глянул в справочник, вроде можно так:
SELECT UNIX_TIMESTAMP(date_create)
и тогда запрос вернет классический таймштамп с которым можно работать в ПХП, как и с другими таймштампами.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования