Nieus van vandaag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Willem Andries

Willem Andries

28/12/2010 13:28:25
Quote Anchor link
Beste,

Ik heb in mijn MYSQL tabel allemaal nieuwsitems staan.
Nu wil ik het nieuws dat vandaag is toegevoegd laten zien aan de leden in een mooie tabel, ik hebt de nieuwsdatum met time()-functie toegevoegd.

dus tabel ziet er zo uit:
id, titel, nieuws, datum

Bedankt
 
PHP hulp

PHP hulp

05/11/2024 11:44:15
 
Dindong Veter

Dindong Veter

28/12/2010 13:31:57
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$qNieuws = mysql_query("SELECT id, titel,nieuws,datum FROM nieuwsitems WHERE DATE(datum) = '".DATE(NOW())."'");
Gewijzigd op 28/12/2010 13:41:03 door Dindong Veter
 
Willem Andries

Willem Andries

28/12/2010 13:36:09
Quote Anchor link
Paul L op 28/12/2010 13:31:57:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$qNieuws = mysql_query("SELECT id, titel,nieuws,datum FROM nieuwsitems ORDER BY datum DESC LIMIT 5");


Dat laat hij alle nieuws zien, die ook van gisteren
 
Dindong Veter

Dindong Veter

28/12/2010 13:36:54
Quote Anchor link
oja, erover heen gelezen aha, zal zo even aanpassen
 
Kris Peeters

Kris Peeters

28/12/2010 13:36:55
Quote Anchor link
Staat die tijd in unix seconden (INT) of in dateTime?
 
Willem Andries

Willem Andries

28/12/2010 13:38:28
Quote Anchor link
Kris Peeters op 28/12/2010 13:36:55:
Staat die tijd in unix seconden (INT) of in dateTime?


int(10)
 
Kris Peeters

Kris Peeters

28/12/2010 13:53:14
Quote Anchor link
Ja, dan zou je al in php moeten berekenen wat de begin- en eindseconde is van de dag en dat in de sql string steken.

Dat lukt wel hoor, daar niet van.

Maar lees toch dit eens; je zal zien dat dit toch meer mogelijkheden biedt.
http://www.phphulp.nl/php/tutorial/overig/datum-en-tijdfuncties-in-mysql/519/

Zo-iets zou wel moeten werken ... maar het kan wat properder/eleganter

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
  $now
= time();
  $eerste_seconde_vandaag = mktime(
    0,
    0,
    0,
    date('n', $now),
    date('j', $now),
    date('Y', $now)
  );

  $laatste_seconde_vandaag = mktime(
    0,
    0,
    -
1,
    date('n', $now),
    date('j', $now) + 1,
    date('Y', $now)
  );

  
  $sql = "SELECT id, titel,nieuws,datum FROM nieuwsitems WHERE datum >= ". $eerste_seconde_vandaag ." AND datum <= ". $laatste_seconde_vandaag;
?>
Gewijzigd op 28/12/2010 14:21:03 door Kris Peeters
 
Kees Schepers

kees Schepers

28/12/2010 14:23:15
Quote Anchor link
Misschien een beetje SPAM van me (als modjes het echt niet lief vinden, dan hoor ik dat graag) maar toevallig heb ik gisteren nog iets geschreven over datum datatypes in MySQL en waarom je dus datums niet als INT moet opslaan, misschien heb je er wat aan:

http://www.keesschepers.nl/2010/12/27/mysql-datatypes-kiezen/
 
Kris Peeters

Kris Peeters

28/12/2010 14:33:51
Quote Anchor link
Nochtans hebben die unix seconden wel 1 voordeel: zo'n tijd geeft je een unieke tijd.
Een tijd die je achteraf altijd weer kan reconstrueren.

Als je bij een gepost bericht een datetime zet, moet je ook altijd een tijdszone toevoegen om de tijd uniek te maken.

Maar ik zal je document zeker eens op mijn gemak lezen.
 
Kees Schepers

kees Schepers

28/12/2010 14:39:18
Quote Anchor link
Maar je kunt in MySQL ook datums als Timestamp opslaan he, zie mijn artikel. Alleen je voegt een datum niet meer toe als integer, maar als NOW() bijvoorbeeld of '2010-05-01 16:20' bijvoorbeeld.

Stel je hebt dus een "insertdate" veld in je tabel met datatype "TIMESTAMP" in MySQL dan kun je een datum toekennen aan dit veld op de volgende manier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$sql
= 'INSERT INTO tabel SET insertdate = NOW()';
//of
$sql = 'INSERT INTO tabel SET insertdate = "2010-05-01 16:20"';
?>


Ondanks je de datums op deze manier opslaat kun je toch de timestamp in unix formaat opvragen van dit veld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= 'SELECT UNIX_TIMESTAMP(insertdate) AS `timestamp` FROM tabel';
?>


Het geselecteerde veld in timestamp zal dan iets 93443512 terug geven.
 
Kris Peeters

Kris Peeters

28/12/2010 15:15:36
Quote Anchor link
Ah ja; timestamp wordt intern als unix seconden opgeslagen. Ja, dan heeft dat niets dan voordelen.


EDIT:
Zeg, hoe zit dat dan als je een sql export doet?
Gewijzigd op 28/12/2010 15:21:39 door Kris Peeters
 
Kees Schepers

kees Schepers

28/12/2010 15:55:09
Quote Anchor link
Dan exporteert hij de datum in YYYY-MM-DD HH:II notatie ;-)
 
Kris Peeters

Kris Peeters

28/12/2010 16:05:33
Quote Anchor link
Ja, okay, dan ben je die unix seconden (intern of niet) en de tijdszone dus weer kwijt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.