Date time in Nederlands weergeven
Hoi,
voor onze wordpress website in het Nederlands heb ik een php geschreven met custom velden.
Alleen komen de maanden er momenteel uit in het Engels.
Ik weet dat dit met strftime mogelijk moet zijn, maar op de plaatsen waar ik dit heb geprobeerd werkt het niet. Iemand die me kan helpen met dit ingewikkeld stukje code ?
voor onze wordpress website in het Nederlands heb ik een php geschreven met custom velden.
Alleen komen de maanden er momenteel uit in het Engels.
Ik weet dat dit met strftime mogelijk moet zijn, maar op de plaatsen waar ik dit heb geprobeerd werkt het niet. Iemand die me kan helpen met dit ingewikkeld stukje code ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$start_date = get_field('datum', false, false);
$start_date = new DateTime($start_date);
$end_date = get_field('eind_datum', false, false);
$end_date = new DateTime($end_date);
$start_month = $start_date->format('F');
$end_month = $end_date->format('F');
?>
<?php if ( get_field('eind_datum') and get_field('datum') ): ?>
<span class='datum'>
<?php
if ($start_month == $end_month) {
// output July 12-13, 2020
echo $start_date->format ('j'); ?>-<?php echo $end_date->format ('j F Y');
} else {
// output July 12 - August 3, 2020
echo $start_date->format('j F'); ?>-<?php echo $end_date->format ('j F Y');
}
?>
</span>
<?php elseif ( empty(get_field('eind_datum')) and (empty(get_field('datum')) === false)): ?>
<span class='datum'><?php echo the_field('datum'); ?></span>
$start_date = get_field('datum', false, false);
$start_date = new DateTime($start_date);
$end_date = get_field('eind_datum', false, false);
$end_date = new DateTime($end_date);
$start_month = $start_date->format('F');
$end_month = $end_date->format('F');
?>
<?php if ( get_field('eind_datum') and get_field('datum') ): ?>
<span class='datum'>
<?php
if ($start_month == $end_month) {
// output July 12-13, 2020
echo $start_date->format ('j'); ?>-<?php echo $end_date->format ('j F Y');
} else {
// output July 12 - August 3, 2020
echo $start_date->format('j F'); ?>-<?php echo $end_date->format ('j F Y');
}
?>
</span>
<?php elseif ( empty(get_field('eind_datum')) and (empty(get_field('datum')) === false)): ?>
<span class='datum'><?php echo the_field('datum'); ?></span>
Gewijzigd op 13/10/2020 22:45:44 door - Ariën -
Niet moeilijk doen en je configuratie aanpassen met een locale:
https://www.php.net/manual/en/function.setlocale.php
Of gebruik dit:
https://www.php.net/manual/en/class.intldateformatter.php
https://www.php.net/manual/en/function.setlocale.php
Of gebruik dit:
https://www.php.net/manual/en/class.intldateformatter.php
Gewijzigd op 13/10/2020 22:47:57 door - Ariën -
Hoi Ariën, ik ben verder gaan puzzelen en ben met een werkbaardere code op de proppen gekomen, alleen blijf ik in de rats zitten met de unix time stamp, alle data worden weergegeven als 1-1 January 1970.
Mocht je me kunnen helpen, dan graag. met de php net manual kom ik er helaas zelf maar niet achter.
De waarde in de sql database is opgeslagen in het "Y-m-d H:i:s" formaat en op de site komt dit er dan als "j F Y" uit.
Mocht je me kunnen helpen, dan graag. met de php net manual kom ik er helaas zelf maar niet achter.
De waarde in de sql database is opgeslagen in het "Y-m-d H:i:s" formaat en op de site komt dit er dan als "j F Y" uit.
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$start_date = get_field('datum');
$start_time = date ("Y-m-d H:i:s", strtotime($start_date));
$start_year = date('Y', $start_time);
$start_month = date('F', $start_time);
$start_day = date('j', $start_time);
$end_date = get_field ('eind_datum');
$end_time = date ("Y-m-d H:i:s", strtotime($end_date));
$end_year = date('Y', $end_time);
$end_month = date('F', $end_time);
$end_day = date('j', $end_time);
if (get_field('eind_datum') and get_field('datum') and ($end_month == $start_month)) {
$display_date = $start_day.' - '.$end_day.' '.$end_month.' '.$end_year;
}
elseif (get_field('eind_datum') and get_field('datum') and ($end_month != $start_month)) {
$display_date = $start_day.' '.$start_month.' - '.$end_day.' '.$end_month.', '.$end_year;
}
else {
$display_date = $start_day.' '.$start_month.' '.$start_year;
}
echo $display_date;
?>
$start_date = get_field('datum');
$start_time = date ("Y-m-d H:i:s", strtotime($start_date));
$start_year = date('Y', $start_time);
$start_month = date('F', $start_time);
$start_day = date('j', $start_time);
$end_date = get_field ('eind_datum');
$end_time = date ("Y-m-d H:i:s", strtotime($end_date));
$end_year = date('Y', $end_time);
$end_month = date('F', $end_time);
$end_day = date('j', $end_time);
if (get_field('eind_datum') and get_field('datum') and ($end_month == $start_month)) {
$display_date = $start_day.' - '.$end_day.' '.$end_month.' '.$end_year;
}
elseif (get_field('eind_datum') and get_field('datum') and ($end_month != $start_month)) {
$display_date = $start_day.' '.$start_month.' - '.$end_day.' '.$end_month.', '.$end_year;
}
else {
$display_date = $start_day.' '.$start_month.' '.$start_year;
}
echo $display_date;
?>
Date() ondersteunt geen locales.
Kijk eens naar de DateTime class of strftime().
Kijk eens naar de DateTime class of strftime().
de 2e parameter van date() is het aantal sec. sinds 1970
$start_time wordt dus iets als '2020-10-17 17:35:00'
Maar die waarde gebruik je weer om start_year te vullen.
en met de senddatum doe je dat ook
ik zou sowieso DateTime gebruiken.
en dan waar je het nodig hebt
of welk deel van de datum je maar nodig hebt.
Code (php)
$start_time wordt dus iets als '2020-10-17 17:35:00'
Maar die waarde gebruik je weer om start_year te vullen.
en met de senddatum doe je dat ook
ik zou sowieso DateTime gebruiken.
en dan waar je het nodig hebt
of welk deel van de datum je maar nodig hebt.




