Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Формат даты Excel

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
GoDr
Отправлено: 01 Апреля, 2015 - 11:18:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Пишу конвертер XLSX (Excel). Всё вроде понятно, но столкнулся с такой бедой. Excel хранит дату в каком-то своём умном формате. Насколько я понял из доков
Цитата:
Датам от 01.01.1900 до 31.12.9999 в EXCEL сопоставлены целые положительные числа от 1 до 2958465

Вроде всё понятно, я имею число 42095 которое соответствует 01.04.2015. Это я так понимаю столько дней прошло с 01.01.1900. Теперь нужно прибавить это количество дней..

делаю так
PHP:
скопировать код в буфер обмена
  1. echo LibDateTime::getDateAdd('01.01.1900', 'P42095D');
  2.  
  3. class LibDateTime
  4. {   public static function getDateAdd($date, $interval, $format = 'd.m.Y')
  5.     {
  6.         $d1 = new DateTime($date);
  7.         $result = $d1->add(new DateInterval($interval))->format($format);
  8.         return $result;
  9.     }
  10. }
  11.  

В итоге получаю 03.04.2015. Допустим 01.01.1900 это первый день. Но всё равно разница в один день

В чём может быть проблема?


-----
Система управления веб-содержимым Lotos CMS
 
 Top
file.shreder
Отправлено: 01 Апреля, 2015 - 11:26:38
Post Id


Посетитель


Покинул форум
Сообщений всего: 286
Дата рег-ции: Окт. 2014  


Помог: 2 раз(а)

[+]


может сделать не 01 первый день а 00? Не понял Не понял Не понял
 
 Top
GoDr
Отправлено: 01 Апреля, 2015 - 11:30:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




ну я об этом сказал уже.. Всё равно остаётся 02.04.2015
То ли я что-то не понимаю, то ли Excel первый и последний день не считает


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Sail
Отправлено: 01 Апреля, 2015 - 13:55:48
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




GoDr, вычитайте 2, потому что excel знает про 29/02/1900, а php (по крайней мере, без дополнительных настроек) - нет Улыбка
 
 Top
GoDr
Отправлено: 01 Апреля, 2015 - 16:41:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Sail, т.е. ты хочешь сказать что PHP не знает только один високосный год за 115 лет ? Что просто отнять два это понятно, но хочется знать причину.. а то получится, залью на какой-нибудь буржуйский сервер, а там PHP всё умеет


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Sail
Отправлено: 01 Апреля, 2015 - 16:53:53
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




GoDr, не получится Улыбка
Ибо это просто фича.
Спойлер (Отобразить)
 
 Top
GoDr
Отправлено: 01 Апреля, 2015 - 17:04:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Вот уроды... а тут думай и гадай.. Надеюсь что свою хрень они исправлять не будут Радость

Sail, спасибо большое. Не нашёл это в Интернете ... +1


Значит я всё правильно делаю, это радует Язычок


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB