Date time in Nederlands weergeven
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 -
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 -
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;
?>
Kijk eens naar de DateTime class of strftime().
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.