Door
Daan s
op 30-10-2017 09:42
gewijzigd op 30-10-2017 13:19
2.566 views
Hey iedereen,
Ik ben bezig met een script, alleen somehow poept hij de verkeerde datum uit.
De agenda die gebruikt word, daar begint januari met 0 (maand 0), ik weet niet precies waarom, maar het blijkt zo te zijn.
Eerst laad ik de data uit de database, waarna ik er een maand wil aftrekken.
Alleen wanneer ik dit doe, krijg ik "new Date(1969, 12 ,01)" terug, wel ik new Date(2007, 11 ,23) hoor terug te krijgen
<script type="text/javascript">
$(window).load(function()
{
$('.your-date').glDatePicker({
showAlways: false,
allowMonthSelect: true,
allowYearSelect: true,
selectableDates: [
<?php
global $wpdb;
$result = $wpdb->get_results('SELECT Date FROM `wpxt_availability` where Available = "true"', ARRAY_A);
foreach ($result as $newresult => $value) {
$value = date('Y, m ,d', strtotime("-1 months", strtotime($value)));
echo "{ date: new Date(".$value.") },";
}
?>
]
});
});
</script>
Je krijgt een foute datum, namelijk 01 -01-1970. Dit betekend dat date() fout is ingesteld. Ik heb niet heel veel verstand van wp/wpdb maar ik denk dat
<?php
$value = date('Y, m ,d', strtotime("-1 months", strtotime($value)));
?>
<?php
$value = date('Y, m ,d', strtotime("-1 months", strtotime($value['Date'])));
?>
moet zijn. Denk namelijk dat $value een array met alle columns van die row zijn.
Somehow krijg ik nu deze output (in de database staat dit 2017-10-31)
Wanneer ik een var dump doe over de value, dan krijg ik wel de juiste datum 2017-10-31
<?
<script type="text/javascript">
$(window).load(function()
{
$('.your-date').glDatePicker({
showAlways: false,
allowMonthSelect: true,
allowYearSelect: true,
selectableDates: [
{ date: new Date(2017, 10, 01) },
]
DATE is een reserved SQL word, dus controleer eens wat je query SELECT Date … doet?
Verder valt de 01 in Date(2017, 10, 01) me op: dat lijkt een octaal getal maar zou een decimaal getal moeten zijn.
Misschien gebruikt je kalender voor de weergave wel ergens 0 voor januari, maar je krijgt onherroepelijk problemen als je daarvoor vervolgens 1 maand moet aftrekken in SQL, PHP of JavaScript: daarin is januari altijd 1. Met andere woorden, probeer die 0 voor januari weg te werken in plaats van alle andere code in een onlogisch keurslijf te dwingen.
Ik heb nu een paar van je topics even teruggekeken maar in geen van degene die ik gezien heb kom je op het einde nog met een berichtje of het gelukt is en evenmin volgt er een bedankje.
Het is maar een tip maar ik kan je wel zeggen dat ik me nu even niet meer als afhaalchinees laat gebruiken door jou.
Sommige mensen doen dat hier inderdaad ... jammer dat er geen puntensysteem of iets dergelijks is. Ik vind dat ook super irritant als mensen niet eens even de moeite nemen om te bedanken.
Ja ozzie je steekt er tijd in om mensen iets te leren of ze te helpen. Lijkt mij niet meer dan normaal om nog even een reactie te plaatsen. Maar gelukkig zijn er ook veel die dat wel doen ;-)