Hallo,
Ik zet bij mijn php script de datum zo in kolom besteldatum: $date = date("d-m-Y");

Maar nu wil ik in Vervaldatum, deze datum $date = date("d-m-Y"); + 1 Jaar.

Hoe kan ik dit doen?

Mvg
Kijk eens naar de functie [php]strtotime[/php]. Voorbeeldje:
<?php
$now = date('d-m-Y');
$nextYear = strtotime('+1 year', $now);
echo date('d-m-Y', $nextYear);
?>
Wouter J op 15/07/2011 10:45:19

Kijk eens naar de functie [php]strtotime[/php]. Voorbeeldje:
<?php
$now = date('d-m-Y');
$nextYear = strtotime('+1 year', $now);
echo date('d-m-Y', $nextYear);
?>


En hoe doe ik dit @ Sql?

Mvg
In plaats van echo voeg je dit toe aan de MySQL query.
Om te beginnen zul je dan de datum in het juiste formaat (yyyy-mm-dd) moeten opslaan. Een datum in het formaat dd-mm-yyy wordt namelijk door PHP noch SQL herkend als datum.

Als je dat gedaan hebt, kun je heel eenvoudig een jaar bij de datum optellen in SQL:


SELECT
  datumveld + INTERVAL 1 YEAR AS datum_plus_jaar
FROM
  tabel

Hetzelfde kun je overigens in alle soorten queries toepassen, dus ook in INSERT en UPDATE queries...


INSERT INTO tabel (datumveld)
VALUES ('2011-07-15' + INTERVAL 1 YEAR)
<?
$now = date('d-m-Y');
$nextYear = strtotime('+1 year', $now);
$next = date('d-m-Y', $nextYear);
$query = "INSERT INTO producten (naam, type, besteldatum, vervaldatum, userid) VALUES('Starters Host','Webhosting','". $date ."','". $next ."','". $leden->getId() ."')";
mysql_query($query) or die(mysql_error());
?>

Nu krijg ik in tabel vervaldatum: 01-01-1971

Mvg
Henke van der bunt op 15/07/2011 10:57:06

Nu krijg ik in tabel vervaldatum: 01-01-1971

Omdat d-m-Y geen datum is, kun je er met strtotime() ook niet mee werken...

Joren de Wit op 15/07/2011 10:58:29

[quote="Henke van der bunt op 15/07/2011 10:57:06"]
Nu krijg ik in tabel vervaldatum: 01-01-1971

Omdat d-m-Y geen datum is, kun je er met strtotime() ook niet mee werken...


[/quote]
Waarom geeft wouter dit mij dan?
Als je dit zou doen werkt het volgens mij wel:
<?
$now = date();
$nextYear = strtotime('+1 year', $now);
$next = date('d-m-Y', $nextYear);
?>
En ik weet, gelukkig, ook niet alles.
Warning: date() expects at least 1 parameter, 0 given in ??
@Wouter: dat zal ook niet werken, date() gebruik je namelijk om een datumtijdstempel op te maken in het gewenste formaat.

@Henke: als je met data en tijden wilt gaan rekenen, kun je dat het beste in de database zelf doen. Deze is daar beter op toegerust dan PHP. Maar of je nu voor PHP of SQL kiest, je zult altijd data in het formaat yyyy-mm-dd moeten gebruiken, iets anders gaat gewoon niet werken...

[size=xsmall]Toevoeging op 15/07/2011 11:13:52:[/size]

Als je overigens in PHP met data en tijden aan de slag wilt, zou ik eens kijken naar het Datetime object...

Reageren