abonnement Unibet Coolblue Bitvavo
  zaterdag 1 december 2007 @ 22:09:17 #126
84926 WyriHaximus
Release the hounds smithers!
pi_54977609
quote:
Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:

[..]

ik zou zeggen probeer mijn code eens.. lijkt waterdicht

als ik voor begindatum 0 invul (01-01-1970) dan geeft ie

jaar: 37
maanden: 11
dagen: 0
uren: 22
minuten: 4
seconden: 50

als er ook maar 1 foutje in zit dan moet dat over een periode van 37 jaar wel opvallen
Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
phluphy for president!
pi_54977639
quote:
Op zaterdag 1 december 2007 22:09 schreef WyriHaximus het volgende:

[..]

Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
  zaterdag 1 december 2007 @ 22:15:01 #128
84926 WyriHaximus
Release the hounds smithers!
pi_54977742
quote:
Op zaterdag 1 december 2007 22:10 schreef Schepseltje het volgende:

[..]

nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
Mooi stukje code om ff te bewaren dus .
phluphy for president!
pi_54977762
quote:
Op zaterdag 1 december 2007 22:15 schreef WyriHaximus het volgende:

[..]

Mooi stukje code om ff te bewaren dus .
ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
  zaterdag 1 december 2007 @ 22:18:02 #130
84926 WyriHaximus
Release the hounds smithers!
pi_54977818
quote:
Op zaterdag 1 december 2007 22:15 schreef Schepseltje het volgende:

[..]

ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
Ja of wilt weten hoelang het duur voordat je kunt stoppen met werken of wanneer je 50 jaar getrouwt bent. Of what ever zijn zoveel dingen waar dit handig voor is .
phluphy for president!
pi_54978068
quote:
Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:
lijkt waterdicht
Wat ik daarmee bedoelde was een geval als dit:

02/02/2003 - 01/03/2004 is dat
1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
of
1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54978408
quote:
Op zaterdag 1 december 2007 22:28 schreef SuperRembo het volgende:

[..]

Wat ik daarmee bedoelde was een geval als dit:

02/02/2003 - 01/03/2004 is dat
1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
of
1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
bij 02/02/2003 - 01/03/2004 zegt ie

jaar: 1
maanden: 0
dagen: 27
uren: 0
minuten: 0
seconden: 0
pi_54979280
ik heb hier een webdemo staan..

http://4aal.nl/datums.php

als iemand nog een fout ziet hoor ik het wel..
pi_54979918
quote:
Op zaterdag 1 december 2007 23:14 schreef Schepseltje het volgende:
als iemand nog een fout ziet hoor ik het wel..
Nou de oplossing met loop is ranzig/lomp. En de 'if ($months>11) { $months = 0; $years++; }' check zou na '$month++' moeten staan.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54980052
wat is er ranzig aan die loop? op php.net staat ie ongeveer ook zo

1
2
3
4
5
6
7
8
$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}


die volgorde van months maakt volgens mij niet uit voor het resultaat

-edit- ik zie trouwens wel dat de "tot" datum gaat tot 2057, ik gok dat dat hierdoor komt..

[ Bericht 6% gewijzigd door Schepseltje op 02-12-2007 00:18:49 ]
pi_54981357
Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.

Ik zou 't zo aanpakken.

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
function datediff($date1, $date2)
{
   if ($date1 > $date2) return false;
   
   $year1 = date("Y", $date1);
   $month1 = date("n", $date1);
   $day1 = date("j", $date1);
   $year2 = date("Y", $date2);
   $month2 = date("n", $date2);
   $day2 = date("j", $date2);

   $years = $year2 - $year1;
   $months = $month2 - $month1;
   $days = $day2 - $day1;
   
   if ($days < 0)
   {
      --$months;
      $days += date("t", mktime(0, 0, 0, $month2 + 1, 0, $year2));
   }
   if ($months < 0)
   {
      --$years;
      $months += 12;
   }
   
   return array("years" => $years, "months" => $months, "days" => $days);
}

Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 2 december 2007 @ 00:47:08 #137
62215 qu63
..de tijd drinkt..
pi_54981546
datediff-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
<?php
/*
Plugin Name: DateDiff
Version: 1.0
Plugin URI: http://maseko.com/project/wp-plugins/wp-datediff/ />Description: Calculate the difference between two dates like Microsoft Excel's datedif.
Author: maseko
Author URI:
http://maseko.com/ />

License information
Copyright 2005
Released under the GPL license
http://www.gnu.org/licenses/gpl.txt

    This file is a plugin for WordPress
    WordPress is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
*/

    
function datediff($start_date,$end_date="now",$unit="D")
        {
            
$unit = strtoupper($unit);
            
$start=strtotime($start_date);
            if (
$start === -1) {
                print(
"invalid start date");
            }
            
            
$end=strtotime($end_date);            
            if (
$end === -1) {
                print(
"invalid end date");
            }
            
            if (
$start > $end) {
                
$temp = $start;
                
$start = $end;
                
$end = $temp;
            }
            
            
$diff = $end-$start;
            
            
$day1 = date("j", $start);
            
$mon1 = date("n", $start);
            
$year1 = date("Y", $start);
            
$day2 = date("j", $end);
            
$mon2 = date("n", $end);
            
$year2 = date("Y", $end);
            
            switch(
$unit) {
                case
"D":
                    echo
intval($diff/(24*60*60));
                    break;
                case
"M":
                    if(
$day1>$day2) {
                        
$mdiff = (($year2-$year1)*12)+($mon2-$mon1-1);
                    } else {
                        
$mdiff = (($year2-$year1)*12)+($mon2-$mon1);
                    }
                    echo
$mdiff;
                    break;
                case
"Y":
                    if((
$mon1>$mon2) || (($mon1==$mon2) &amp;&amp; ($day1>$day2))){
                        
$ydiff = $year2-$year1-1;
                    } else {
                        
$ydiff = $year2-$year1;
                    }
                    echo
$ydiff;
                    break;
                case
"YM":
                    if(
$day1>$day2) {
                        if(
$mon1>=$mon2) {
                            
$ymdiff = 12+($mon2-$mon1-1);
                        } else {
                            
$ymdiff = $mon2-$mon1-1;
                        }
                    } else {
                        if(
$mon1>$mon2) {
                            
$ymdiff = 12+($mon2-$mon1);
                        } else {
                            
$ymdiff = $mon2-$mon1;
                        }
                    }
                    echo
$ymdiff;
                    break;
                case
"YD":
                    if((
$mon1>$mon2) || (($mon1==$mon2) &amp;&amp;($day1>$day2))) {
                        
$yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2-1))/(24*60*60));                        
                    } else {
                        
$yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2))/(24*60*60));
                    }
                    echo
$yddiff;
                    break;
                case
"MD":
                    if(
$day1>$day2) {
                        
$mddiff = intval(($end - mktime(0, 0, 0, $mon2-1, $day1, $year2))/(24*60*60));                        
                    } else {
                        
$mddiff = intval(($end - mktime(0, 0, 0, $mon2, $day1, $year2))/(24*60*60));
                    }
                    echo
$mddiff;
                    break;
                default:
                 print(
"{Datedif Error: Unrecognized \$unit parameter. Valid values are 'Y', 'M', 'D', 'YM'. Default is 'D'.}");
                
            }

        }
?>

op je website te gebruiken als
1
2
3
<?php
$now
= date("Y-m-d"); $td = "2006-9-24"; $tde = "2007-12-21"; echo " Over ";datediff("now","$tde","M");echo " maanden en ";datediff("now", "$tde", "MD");echo " dagen ben ik klaar! (ongeveer dan..)"
?>

ouyput is dan:
Over 0 maanden en 19 dagen ben ik klaar! (ongeveer dan..)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_54981656
quote:
Op zondag 2 december 2007 00:38 schreef SuperRembo het volgende:
Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.

Ik zou 't zo aanpakken.
[ code verwijderd ]

Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
nee, elke loop is voor een maand, en bij elke maand moet hij opnieuw kijken hoeveel dagen die maand heeft
pi_55014687
Vraagje, of iemand hier een bestaande routine voor weet.

Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.

Hopelijk begrijpt iemand mij
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 3 december 2007 @ 16:20:08 #140
107951 JortK
Immer kwaliteitsposts
pi_55015093
quote:
Op maandag 3 december 2007 15:58 schreef Chandler het volgende:
Vraagje, of iemand hier een bestaande routine voor weet.

Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.

Hopelijk begrijpt iemand mij :P
1
2
3
<?php
ltrim
()
?>


Of trim() :?
pi_55015785
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_55015912
quote:
Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
1
2
3
<?php
printf
('%2f'$bedrag);
?>
  maandag 3 december 2007 @ 17:04:42 #143
107951 JortK
Immer kwaliteitsposts
pi_55016032
quote:
Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
number_format();
pi_55016078
Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_55016217
Ow, die van mij was niet helemaal goed
1
2
3
4
5
6
7
8
<?php
$money1
= 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted will output "123.10"
?>


[ Bericht 69% gewijzigd door Light op 03-12-2007 20:46:01 (Tag fix) ]
  maandag 3 december 2007 @ 17:16:20 #146
107951 JortK
Immer kwaliteitsposts
pi_55016255
quote:
Op maandag 3 december 2007 17:07 schreef DaFrenk het volgende:
Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
Probeer een van de twee eens
  maandag 3 december 2007 @ 17:19:15 #147
84926 WyriHaximus
Release the hounds smithers!
pi_55016312
quote:
Op maandag 3 december 2007 17:16 schreef JortK het volgende:

[..]

Probeer een van de twee eens
http://nl2.php.net/number_format werkt het makkelijkst ja
phluphy for president!
pi_55016362
number_format() is in mijn geval het handigst! Bedankt allebei!
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
  maandag 3 december 2007 @ 18:45:50 #149
529 twi
Het lichtje is uit...
pi_55017968
Hoe noemen jullie de wat gedetailleerdere cms-pagina's eigenlijk? En bouwen jullie alle functionaliteit in 1 bestand?

Ik ben bezig om het wiel opnieuw uit te vinden door een template voor een nieuwssysteem te maken welke ik in de toekomst eenvoudig in een site kan bouwen wanneer een klant het wil, en m'n cms related bestandsnamen wil ik zo duidelijk mogelijk krijgen.

1
2
3
4
5
6
7
8
9
news.item.insert.php
news.item.edit.php
news.item.delete.php

news.category.insert.php
news.category.edit.php
news.category.delete.php

etc.

Maar misschien iis het wel netter om dit met behulp van switch cases te doen waardoor je per item maar 1 bestand hebt:
1
2
news.item.php
news.category.php

Maar dan zul je voor sommige cms-functionaliteiten wel enorm grote bestanden krijgen.

Is er literatuur of zijn er bepaalde richtlijnen en/of aangrijpingspunten hierover?
pi_55020651
Ik zet elke class in een eigen bestand. Als je het op de eerste manier doet (per functie een bestand) krijg je veel te veel versnippering, naast de methodes insert, edit en delete zal je wsch veel meer functies hebben en dan zit je voor je het weet met 80 miljoen bestanden. Een bestand met alle methodes en properties van een class bij elkaar is veel praktischer, grote bestanden zijn geen probleem als je een goede IDE hebt.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')