Подготовка дат в Excel и Google Таблицах для импорта в Cotonti
Цель документа
Данный материал предназначен для администраторов сайтов и контент-менеджеров, которые выполняют импорт товаров, статей или других записей в Cotonti из CSV-файлов, Excel или Google Таблиц.
Задача — научиться корректно преобразовывать любые даты:
- стандартные (
2024-01-11 12:16:32) - локальные (
11.01.2024) - текстовые (
11 января 2024) - неполные (
2024-01-11) - с временем и без времени
в UNIX timestamp — числовой формат, который Cotonti хранит в базе данных (в полях типа INT: page_date, page_begin, page_expire, page_updated).
1. Почему для Cotonti нужен именно timestamp
В базе Cotonti даты хранятся так:
Это не строка. Это число секунд с 01.01.1970 00:00:00 (UTC).
Если при импорте в CSV вы передадите:
или
— Cotonti либо не сможет корректно обработать дату, либо преобразует её в 0, либо возникнут ошибки логики публикации.
Поэтому перед импортом необходимо:
- Преобразовать дату в число.
- Проверить, что это именно целое значение.
- Убедиться, что в CSV нет текстового формата.
2. Общая схема подготовки дат
Любая дата перед импортом проходит три этапа:
- Исходная строка (Excel/Google Sheets)
- Преобразование в числовое представление
- Экспорт в CSV как число без кавычек
3. Как Excel хранит даты на самом деле
Excel не хранит дату как строку.
Он хранит её как число — количество дней с 1 января 1900 года.
Пример:
| Отображение | Реальное число |
| 11.01.2024 | 45299 |
| 01.01.1970 | 25569 |
Чтобы получить UNIX timestamp, нужно:
- Вычесть дату 01.01.1970
- Умножить результат на 86400 (секунд в сутках)
4. Стандартная формула Excel для перевода даты в UNIX timestamp
Если в ячейке A1 находится дата:
Используйте формулу:
или в английской версии Excel:
После этого:
- Установите формат ячейки: Числовой
- Уберите дробную часть (округление до целого)
Пример результата:
Это уже корректный формат для Cotonti.
5. Если дата содержит время
Если в A1:
Формула та же:
Excel учитывает долю суток автоматически.
6. Если дата в текстовом формате (не распознаётся Excel)
Иногда при импорте CSV дата отображается как текст:
и Excel не считает её датой.
Способ 1 — преобразовать через "Текст по столбцам"
- Выделить столбец
- Данные → Текст по столбцам
- Выбрать формат "Дата"
- Указать порядок ДМГ
После этого Excel преобразует строку в настоящую дату.
Способ 2 — использовать функцию DATEVALUE
Если A1 содержит текст:
Используйте:
Затем примените формулу перевода в timestamp.
7. Если формат нестандартный
Пример 1:
Excel обычно распознаёт автоматически.
Если нет:
Пример 2:
Если Excel не распознаёт, нужно:
- Убедиться, что язык системы совпадает
- Либо заменить месяц на числовой
Пример 3:
Используем:
После получения даты — применяем формулу timestamp.
8. Google Таблицы — преобразование дат
В Google Sheets формула почти аналогична.
Если A1 — дата:
Важно:
- Установить формат ячейки "Число"
- Округлить:
9. Преобразование даты с текстом в Google Sheets
Если A1 содержит текст:
Используйте:
10. Если в таблице есть '0000-00-00'
Это не дата.
Excel не сможет корректно её преобразовать.
Правильная стратегия:
- Заменить такие значения на пустые.
- Или заменить на 0.
- Или заменить на реальную дату.
Формула для очистки:
11. Проверка корректности перед экспортом
Перед сохранением CSV убедитесь:
- В столбце нет строк
- Нет кавычек
- Нет формата "Дата"
- Только целые числа
Пример правильного столбца:
12. Что делать, если дата отсутствует
В Cotonti отсутствие даты обозначается:
Это корректное значение.
Не используйте:
13. Обратная конвертация (для проверки)
Если нужно проверить timestamp:
В Excel:
Установите формат ячейки "Дата и время".
Пример:
14. Практический пример импорта
Исходная таблица:
| title | publish_date |
| Статья 1 | 11.01.2024 12:16 |
| Статья 2 | 15.02.2024 09:00 |
Добавляем столбец:
| publish_timestamp |
Формула:
Получаем:
| publish_timestamp |
| 1704948992 |
| 1707987600 |
Экспортируем CSV:
Импортируем в Cotonti.
В базе хранится корректный INT.
При просмотре страницы дата выводится корректно с учётом часового пояса пользователя.
15. Типовые ошибки при импорте
- Экспорт даты в формате
11.01.2024 - Использование
0000-00-00 - Сохранение столбца как текст
- Использование дробных чисел
- Сохранение CSV в формате, меняющем разделители
16. Рекомендованный рабочий алгоритм
- Импортируйте данные в Excel.
- Убедитесь, что даты распознаны как даты.
- Создайте новый столбец для timestamp.
- Примените формулу.
- Округлите.
- Проверьте отсутствие строк.
- Экспортируйте CSV.
- Импортируйте в Cotonti.
Заключение
Для корректной работы Cotonti:
- В базе должны храниться только UNIX timestamp.
- CSV должен содержать только числа.
- Excel и Google Таблицы должны использовать формулу перевода в секунды.
- Значение
0 допустимо. - Значения вида
0000-00-00 недопустимы.
Соблюдение этих правил гарантирует:
- корректную публикацию,
- правильную сортировку,
- корректную работу отложенных дат,
- правильное отображение пользователю.
При массовом импорте это особенно критично, поскольку даже небольшая ошибка формата может привести к массовым сбоям отображения дат на сайте.