Дата публикации php
Нужен скрипт, с помощью которого, можно было бы отображать дату публикации.
Пример: Я добавляю запись через html, ставлю в этой записи переменную (например date) и при публикации, около записи отображается дата публикации.
P.S. Понимаю, что возможно много прошу, но я нигде не смог найти ответа. Везде приводятся примеры с сайтами на WordPress.
Ответы (2 шт):
Если вы работаете с базой данных Mysql.
1) Создаете в таблице вашей базы данных отдельное поле с названием date к примеру. Ставите в это поле кодировку utf8_general_ci и для теста выбираете тип поля, к примеру TIMESTAMP. Который сохраняет (день, месяц, год, время)
2) В форме ввода записи вставляете поле скрытое type="hidden" value="date" (value принимает значение даты). 3) Не забываем в скрипте просмотра записи вставить переменную которую достаем из базы данных date вот в принципе и все. Если вы работаете в обычном HTML без баз данных, просто возьмите отдельный тег к примеру <b> </b> и в конце каждой записи выставляйте дату вручную.
PHP не нужен. Достаточно разместить скрипт в конец тега <body>. Лучше всего работает если PHP вообще не установлен или не используется. То есть работает хорошо даже на статичной HTML-страничке на сервере.
<script>
// Получаем заголовки текущей страницы
fetch(location,{method:'head'})
.then(({headers})=>{
// Получаем заголовок последнего изменения
const modified = headers.get('last-modified');
// TODO иногда последнее изменение можно извлечь из заголовка Etag
// Если последнее изменение известно
if(modified){
// Приведем дату в божеский вид
const localModified = new Date(modified).toLocaleString();
// ищем текст "date" по всей странице
findAll('date').forEach(({node,offset:[beg,end]})=>{
// Если текст "date" найден в одной ноде
if(!Array.isArray(node)){
// заменяем "date" на дату из заголовка
node.replaceData(beg,end-beg, localModified);
}
});
}
});
// Достаточно дурацкая реализация поиска текста по всей странице
function findAll(text){
const res = [];
// Сохраняем позицию скролла
let pos = document.documentElement.scrollTop;
// Сбрасываем что пользователь выделил на странице
window.getSelection().empty();
// Пока ищется текст, выполняем
while(window.find(text)) {
// Получаем текущее выделение
const sel = window.getSelection();
// Нода, в которой начинается найденный текст
const nodeBeg = sel.anchorNode;
// Смещение найденного текста от начала ноды (в символах)
const ofstBeg = sel.anchorOffset;
// Нода, в которой заканчивается найденный текст
const nodeEnd = sel.focusNode;
// Смещение конца найденного текста от начала ноды (в символах)
const ofstEnd = sel.focusOffset;
// Добавляем это хозяйство в массив с результатами
res.push({node: nodeBeg == nodeEnd ?
nodeBeg :
[nodeBeg,nodeEnd],
offset: [ofstBeg,ofstEnd]});
}
// Сбрасываем последнее выделение
window.getSelection().empty();
// Восстанавливаем позицию скролла
document.documentElement.scrollTop = pos;
// Возвращаем результат
return res;
}
</script>