Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
1

Вывод даты к статье

25.05.2013, 18:07. Показов 1131. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сейчас в моей CMS выводится только день и месяц публикации статьи, а я хочу, чтобы выводились день, месяц и время. Что надо изменить в коде?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<?php
 
/**
 * Класс для обработки статей
 */
 
class Article
{
  // Свойства
 
  /**
  * @var int ID статей из базы данных
  */
  public $id = null;
 
  /**
  * @var int Дата первой публикации статьи
  */
  public $publicationDate = null;
 
  /**
  * @var string Полное название статьи
  */
  public $title = null;
 
  /**
  * @var string Краткое описание статьи
  */
  public $summary = null;
 
  /**
  * @var string HTML содержание статьи
  */
  public $content = null;
 
 
  /**
  * Устанавливаем свойства с помощью значений в заданном массиве
  *
  * @param assoc Значения свойств
  */
 
  public function __construct( $data=array() ) {
    if ( isset( $data['id'] ) ) $this->id = (int) $data['id'];
    if ( isset( $data['publicationDate'] ) ) $this->publicationDate = (int) $data['publicationDate'];
  if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ а-прстуфхцчшщьъыэюяА-ПРСТУФХЦЧШЩЬЪЫЭЮЯЯa-zA-Z0-9()]/", "", $data['title'] ); 
  if ( isset( $data['summary'] ) ) $this->summary = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ а-прстуфхцчшщьъыэюяА-ПРСТУФХЦЧШЩЬЪЫЭЮЯЯa-zA-Z0-9()]/", "", $data['summary'] ); 
  if ( isset( $data['content'] ) ) $this->content = $data['content'];
  }
 
 
  /**
  * Устанавливаем свойств с помощью значений формы редактирования записи в заданном массиве
  *
  * @param assoc Значения записи формы
  */
 
  public function storeFormValues ( $params ) {
 
    // Сохраняем все параметры
    $this->__construct( $params );
 
    // Разбираем и сохраняем дату публикации
    if ( isset($params['publicationDate']) ) {
      $publicationDate = explode ( '-', $params['publicationDate'] );
 
      if ( count($publicationDate) == 3 ) {
        list ( $y, $m, $d ) = $publicationDate;
        $this->publicationDate = mktime ( 0, 0, 0, $m, $d, $y );
      }
    }
  }
 
 
  /**
  * Возвращаем объект статьи соответствующий заданному ID статьи
  *
  * @param int ID статьи
  * @return Article|false Объект статьи или false, если запись не найдена или возникли проблемы
  */
 
  public static function getById( $id ) {
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $sql = "SELECT *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles WHERE id = :id";
    $st = $conn->prepare( $sql );
    $st->bindValue( ":id", $id, PDO::PARAM_INT );
    $st->execute();
    $row = $st->fetch();
    $conn = null;
    if ( $row ) return new Article( $row );
  }
 
 
  /**
  * Возвращает все (или диапазон) объектов статей в базе данных
  *
  * @param int Optional Количество строк (по умолчанию все)
  * @param string Optional Столбец по которому производится сортировка  статей (по умолчанию "publicationDate DESC")
  * @return Array|false Двух элементный массив: results => массив, список объектов статей; totalRows => общее количество статей
  */
 
  public static function getList( $numRows=1000000, $order="publicationDate DESC" ) {
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles
            ORDER BY " . mysql_escape_string($order) . " LIMIT :numRows";
 
    $st = $conn->prepare( $sql );
    $st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
    $st->execute();
    $list = array();
 
    while ( $row = $st->fetch() ) {
      $article = new Article( $row );
      $list[] = $article;
    }
 
    // Получаем общее количество статей, которые соответствуют критерию
    $sql = "SELECT FOUND_ROWS() AS totalRows";
    $totalRows = $conn->query( $sql )->fetch();
    $conn = null;
    return ( array ( "results" => $list, "totalRows" => $totalRows[0] ) );
  }
 
 
  /**
  * Вставляем текущий объект статьи в базу данных, устанавливаем его свойства.
  */
 
  public function insert() {
 
    // Есть у объекта статьи ID?
    if ( !is_null( $this->id ) ) trigger_error ( "Article::insert(): Attempt to insert an Article object that already has its ID property set (to $this->id).", E_USER_ERROR );
 
    // Вставляем статью
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $sql = "INSERT INTO articles ( publicationDate, title, summary, content ) VALUES ( FROM_UNIXTIME(:publicationDate), :title, :summary, :content )";
    $st = $conn->prepare ( $sql );
    $st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
    $st->bindValue( ":title", $this->title, PDO::PARAM_STR );
    $st->bindValue( ":summary", $this->summary, PDO::PARAM_STR );
    $st->bindValue( ":content", $this->content, PDO::PARAM_STR );
    $st->execute();
    $this->id = $conn->lastInsertId();
    $conn = null;
  }
 
 
  /**
  * Обновляем текущий объект статьи в базе данных
  */
 
  public function update() {
 
    // Есть ли у объекта статьи ID?
    if ( is_null( $this->id ) ) trigger_error ( "Article::update(): Attempt to update an Article object that does not have its ID property set.", E_USER_ERROR );
   
    // Обновляем статью
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $sql = "UPDATE articles SET publicationDate=FROM_UNIXTIME(:publicationDate), title=:title, summary=:summary, content=:content WHERE id = :id";
    $st = $conn->prepare ( $sql );
    $st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
    $st->bindValue( ":title", $this->title, PDO::PARAM_STR );
    $st->bindValue( ":summary", $this->summary, PDO::PARAM_STR );
    $st->bindValue( ":content", $this->content, PDO::PARAM_STR );
    $st->bindValue( ":id", $this->id, PDO::PARAM_INT );
    $st->execute();
    $conn = null;
  }
 
 
  /**
  * Удаляем текущий объект статьи из базы данных
  */
 
  public function delete() {
 
    // Есть ли у объекта статьи ID?
    if ( is_null( $this->id ) ) trigger_error ( "Article::delete(): Attempt to delete an Article object that does not have its ID property set.", E_USER_ERROR );
 
    // Удаляем статью
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $st = $conn->prepare ( "DELETE FROM articles WHERE id = :id LIMIT 1" );
    $st->bindValue( ":id", $this->id, PDO::PARAM_INT );
    $st->execute();
    $conn = null;
  }
 
}
 
?>
HTML5
1
<span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span>
В базе к полю publicationDate стоит тип date, если поменять на datetime, появляется только день месяц и год и то неправильно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2013, 18:07
Ответы с готовыми решениями:

Вывод даты из базы и подсчет строк где втстречаются эти даты
В таблице mysql есть поле где хранится дата. и это дата встречается в этой таблице по несколько...

Не получается составить SQL запрос на вывод статье из категорий в блоге
Добрый день, делаю блог - там у меня есть категории , хочу сделать, чтобы при нажатии на каждую из...

Надо дописать!Ассемблер вывод системной даты,времени и даты ближайшего воскресенья
вот исходный код .Model Small .486p .Stack 100h .Data wNumOff DW 10 Dup(0) ;Смещение...

Вывод системной даты, времени и даты ближайшего воскресенья
вот исходный код выводит дату время .Model Small .486p .Stack 100h .Data wNumOff DW 10...

13
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.05.2013, 18:11 2
Цитата Сообщение от Александр141 Посмотреть сообщение
и то неправильно
что значит неправильно? тип поля DATE не содержит информации о времени. Либо используйте datetime, либо, что в вашем случае будет более разумно - использовать тип поля timestamp.
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 18:19  [ТС] 3
это не помогает
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.05.2013, 18:21 4
что не помогает? Я не в состоянии угадать, что и как вы сделали. Объясняйте подробнее и показывайте код.
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 18:22  [ТС] 5
поставил к полю publicationDate тип timestamp
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.05.2013, 18:23 6
и..? Дальнейшие действия?
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 18:26  [ТС] 7
поставил к статье время и как выводилась только дата на сайте так и выводится
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.05.2013, 18:28 8
Код вывода даты покажите

Добавлено через 39 секунд
дату изменили на нужную? Насколько помню, по умолчанию при изменении ставится текущая дата

Добавлено через 28 секунд
и на какой тип изменили? DATETIME или TIMESTAMP ?
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 18:33  [ТС] 9
timestamp
HTML5
1
2
<label for="publicationDate">Publication Date</label>
            <input type="date" name="publicationDate" id="publicationDate" placeholder="YYYY-MM-DD-T-HH-MM-SS" required maxlength="10" value="<?php echo $results['article']->publicationDate ? date( "Y-m-d-t-h-m-s", $results['article']->publicationDate ) : "" ?>" />
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.05.2013, 18:38 10
PHP
1
<?php echo $results['article']->publicationDate ? date( "Y-m-d-t-h-m-s", strtotime($results['article']->publicationDate) ) : '' ?>
только непонятно, зачем вам там t, дважды m и s (ну последнее еще ладно)
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 18:47  [ТС] 11
всё равно выводится только дата, мне кажется, что ошибка здесь
HTML5
1
<span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.05.2013, 18:55 12
мде.. а заменить на необходимое..?

Добавлено через 1 минуту
http://php.net/manual/ru/function.date.php
j День месяца без ведущего нуля от 1 до 31
........
F Полное наименование месяца, например January или March от January до December
Скажите, что вы ожидаете еще увидеть?
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 19:09  [ТС] 13
всё, получилось, только у меня стоит редактор статей прямо с сайта и там можно выбирать дату публикации статьи, как туда добавить время
HTML5
1
2
3
4
 <li>
            <label for="publicationDate">Дата публикации</label>
            <input type="date" name="publicationDate" id="publicationDate" placeholder="YYYY-MM-DD" required maxlength="10" value="<?php echo $results['article']->publicationDate ? date( "Y-m-d-t-h-m-s", strtotime($results['article']->publicationDate) ) : '' ?>" />
          </li>
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 83
25.05.2013, 19:14  [ТС] 14
вот
Миниатюры
Вывод даты к статье  
0
25.05.2013, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2013, 19:14
Помогаю со студенческими работами здесь

Вывод даты в ясейку Excel в формате даты
Здравствуйте. Пытаюсь вывести из табличной части обработки 1с дату в ячейку Excel: Лист.Cells(Стр...

Вывод даты
Мне требуется выводить дату из базы данных, в базе данных дата хранится в datetime Я хотел сделать...

Вывод даты
Всем доброго времени суток! Нужно вывести текущую дату, причем месяц вывести словом. Создал строку ...

Вывод даты
Функция date(); выводит дату и время, но как сделать чтобы выводилось название месяца(на русском)?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru