Graag uw mening: datumfunctie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

The Ultimate

The Ultimate

07/12/2010 16:01:02
Quote Anchor link
Omdat ik altijd loop te #$(*&@ met het omzetten van datums naar een formaat zoals ik het wil heb ik hier een functie voor gemaakt. Graag hoor ik van jullie of er verbeterpunten zijn, zodat ik het kan aanpassen. Laat ook even weten of je het handig lijkt om dit script tussen de 'Snippets' te plaatsen.

Let op: Ik ben een amateur en heb geen opleiding gevolgd. Wees dus een beetje lief.

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php

// Set country / language
$lang = 'NL';
define('SITE_LANGUAGE', $lang); // Site language (EN,NL,etc.)

function fDate($sDate,$sFormat) {

    /**
    *
    *    Function - fDate (Format Date)
    *
    *    Function to format date and time to various output.
    *    Options to output preferred date and time stamp based on local
    *
    *    $sDate - Date input in following format: yyyy-mm-dd hh:mm:ss
    *    $sFormat - Format to output date and time. Value: 1 through 9
    *
    *    Output (depending on SITE_LANGUAGE):
    *    $sFormat = 1 -> 12/7/2010
    *    $sFormat = 2 -> Tuesday 7 December 2010
    *    $sFormat = 3 -> Tue 7 December 2010
    *    $sFormat = 4 -> 4:21:35 PM
    *    $sFormat = 5 -> 12/7/2010 4:21:35 PM
    *    $sFormat = 6 -> Tuesday 7 December 2010 at 4:21:35 PM
    *    $sFormat = 7 -> Tue 7 December 2010 at 4:21:35 PM
    *    $sFormat = 8 -> Tuesday 7 December 2010 at 16h 21m
    *    $sFormat = 9 -> 12/7/2010 at 4:21:35 PM
    *
    **/

    // Seperate date and time

    $pieces = explode(' ',$sDate);
    $date = $pieces[0];
    $time = $pieces[1];

    // Seperate year, month and day
    $pieces = explode('-',$date);
    $year = $pieces[0];
    $month = $pieces[1];
    $day = $pieces[2];
    
    // Seperate hour, minute and second
    $pieces = explode(':',$time);
    $hour = $pieces[0];
    $minute = $pieces[1];
    $second = $pieces[2];
    
   // Set country / language
    switch(SITE_LANGUAGE) {
        case
'NL':
            /* Set locale to Dutch */
            setlocale(LC_ALL, 'nld_nld');
            /* Language adjustments */
            $at = 'om';
            $h = 'u';
            $m = 'm';
        break;
        default:

            /* Set locale to English */
            setlocale(LC_ALL, 'En-Us');
            /* Language adjustments */
            $at = 'at';
            $h = 'h';
            $m = 'm';
        break;
    }


    // Return format
    switch($sFormat) {

        #==== Date only ====#
        case '1':
            return strftime("%x", mktime(0, 0, 0, $month, $day, $year));
        break;
        case
'2':
            return strftime("%A %#d %B %Y", mktime(0, 0, 0, $month, $day, $year));
        break;
        case
'3':
            return strftime("%a %#d %B %Y", mktime(0, 0, 0, $month, $day, $year));
        break;

        #==== Time only ====#
        case '4':
            return strftime("%X", mktime($hour, $minute, $second, $month, $day, $year));
        break;

        #==== Date and time ====#
        case '5':
            return strftime("%c",mktime($hour, $minute, $second, $month, $day, $year));
        break;
        case
'6':
            return strftime("%A %#d %B %Y ".$at." %X", mktime($hour, $minute, $second, $month, $day, $year));
        break;
        case
'7':
            return strftime("%a %#d %B %Y ".$at." %X", mktime($hour, $minute, $second, $month, $day, $year));
        break;
        case
'8':
            return strftime("%A %#d %B %Y ".$at." %H".$h." %M".$m, mktime($hour, $minute, $second, $month, $day, $year));
        break;
        case
'9';
            return strftime("%x ".$at." %X", mktime($hour, $minute, $second, $month, $day, $year));
        break;
    }
}


// How to use
$date_posted = '2010-12-06 21:38:35';
echo '<p>' . ucfirst(fDate($date_posted,'1')).'</p>';

// Show all formats:
for($x=1;$x<10;$x++) {
echo '<p class="mailInfo">$sFormat = '.$x.' -> ' . ucfirst(fDate($date_posted,$x)).'</p>';
}

?>
Gewijzigd op 07/12/2010 17:10:02 door The Ultimate
 
PHP hulp

PHP hulp

25/04/2024 14:48:52
 
- SanThe -

- SanThe -

07/12/2010 16:11:53
Quote Anchor link
Ziet er wel netjes uit.

Alleen wat als ik bij $lang "NLD" invul?
Dan gaat je switch niet werken en zullen de diverse $vars onbekend blijven met alle gevolg van dien.

Doe de switch zo en ook dat is opgelost:
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
    // Taal-/Landkeuze
    switch(SITE_LANGUAGE) {
        case
'NL':
            /* Set locale to Dutch */
            setlocale(LC_ALL, 'nld_nld');
            /* Language adjustments */
            $at = 'om';
            $h = 'u';
            $m = 'm';
        break;
        default:

            /* Set locale to English */
            setlocale(LC_ALL, 'En-Us');
            /* Language adjustments */
            $at = 'at';
            $h = 'h';
            $m = 'm';
        break;
    }

?>
Gewijzigd op 07/12/2010 16:15:02 door - SanThe -
 
The Ultimate

The Ultimate

07/12/2010 16:17:49
Quote Anchor link
@SanThe:
Dank je wel voor de nuttige toevoeging. Heb de beginpost aangepast. Denk je dat het zin heeft om dit script tussen de 'Snippets' te plaatsen?
 
- SanThe -

- SanThe -

07/12/2010 16:30:31
Quote Anchor link
Foutje: %w moet zijn %e (of %d) (5 keer aanwezig).

Het naar Nederlands zetten met setlocale() werkt hier bij mij niet.
 
Moe BE

Moe BE

07/12/2010 16:31:50
Quote Anchor link
Mooie functie, ik heb er zelf ook al wel eens een gemaakt maar deze is mooier. Zet hem maar tussen de snippets, ik ga hem zeker nog gebruiken in de toekomst.
 
TJVB tvb

TJVB tvb

07/12/2010 16:32:15
Quote Anchor link
Ik denk dat als je er wat meer commentaar bij voegt (een blokje commentaar boven je functie met de mogelijkheden voor $sFormat zou al veel helpen, als dit duidelijk is kunnen veel ide's hiermee overweg. (zeg maar de regels in je switch even in een doccomment erboven)

En iets van foutafhandeling als je 2e switch niks teruggeeft (of daar ook een default)
 
The Ultimate

The Ultimate

07/12/2010 16:35:46
Quote Anchor link
@SanThe:
The %e modifier is not supported in the Windows implementation of this function. To achieve this value, the %#d modifier can be used instead.
Bij mij werkt het uitstekend en ik werk op een windows-machine. Of gaat het om mijn host?

@Moe BE:
Thanks! Zal hem tussen de snippets plaatsen zodra ik zeker weet dat de functie helemaal klopt.

@TJVB tvb:
Ok, zal ik doen. Ga het aanpassen en dan verander ik het in de mainpost. Maar wat is eigenlijk een 'ide'?
Gewijzigd op 07/12/2010 16:38:14 door The Ultimate
 
Niels K

Niels K

07/12/2010 16:37:54
Quote Anchor link
Nog wat php doc erbij..

En soms zijn je comments in het nederlands en soms en het engels ;)
 
The Ultimate

The Ultimate

07/12/2010 16:39:27
Quote Anchor link
@Niels:
Ja, dat had ik zelf ook al gezien idd. Ga even een doccomment maken en dan zal ik het allemaal in een taal doen. Voorkeur voor een taal? Engels?
 
- SanThe -

- SanThe -

07/12/2010 16:41:38
Quote Anchor link
The Ultimate op 07/12/2010 16:35:46:
@SanThe:
The %e modifier is not supported in the Windows implementation of this function. To achieve this value, the %#d modifier can be used instead.
Bij mij werkt het uitstekend en ik werk op een windows-machine. Of gaat het om mijn host?


Het gaat om de %w (weekdag), dat is fout. Dat moet (dag van de maand) óf %e (zonder voorloopnul) óf %d (met voorloopnul) worden.
Gewijzigd op 07/12/2010 16:45:24 door - SanThe -
 
The Ultimate

The Ultimate

07/12/2010 16:49:50
Quote Anchor link
@SanThe:
Waarom is dat fout? Bij mij werkt %e overigens weer niet. Alleen %d.
 
Niels K

Niels K

07/12/2010 16:50:18
Quote Anchor link
@The Ultimate

Wat jij helemaal zelf wilt :)
 
- SanThe -

- SanThe -

07/12/2010 16:53:41
Quote Anchor link
Okee, maar in je script staat %w (weekdag) en dat is fout.

return strftime("%A %w %B %Y", ......
 
The Ultimate

The Ultimate

07/12/2010 17:01:37
Quote Anchor link
Inmiddels commentaar toegevoegd en al het commentaar in het Engels.

@Niels:
Het is Engels geworden! ;-)

@SanThe:
Ah, nu snap ik het. Dat is inderdaad onhandig. Ga ik gelijk aanpassen. Weet je een vervanging voor %e? Aangezien dit op Windows niet werkt en ik toch echt zonder leading zero's wil tonen? Thanks!
 
- SanThe -

- SanThe -

07/12/2010 17:04:27
Quote Anchor link
The Ultimate op 07/12/2010 17:01:37:
Weet je een vervanging voor %e? Aangezien dit op Windows niet werkt en ik toch echt zonder leading zero's wil tonen? Thanks!


Nee helaas, %d of %e.
 
The Ultimate

The Ultimate

07/12/2010 17:10:20
Quote Anchor link
@SanThe:
Ow, stom. Het stond er gewoon:
To achieve this value, the %#d modifier can be used instead.

Beginpost is inmiddels aangepast.
 



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.