php function - eisen op server?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris Bosmans

chris Bosmans

13/01/2016 20:31:45
Quote Anchor link
allemaal

ik heb overlaatst hier een script gezien en gebruik deze nu voor de begin dag en eind dag opteroepen via een weeknummer en jaarinput

nu dit werkt thuis op mijn server moeiteloos op IE en chrome.
ik heb hier php 5.5.30 draaien.

nu op het werk draait er php 5.6 en daar wil die functie niet werken (op de werk server wel te verstaan)
als ik de pagina op het werk open van mijn eigen server werkt het.

nu is mijn vraag, waar moet ik opletten of enabelen zodat functions ook werken op de werkserver?



de functie is
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
<?php

$week
=$_POST['week'];
$jaar=$_POST['jaar'];
/********************************************************************************************************/
//weeknummer naar datum omvormen
/********************************************************************************************************/


$dateweek=ISOdates_from_weeknr($week, $jaar);


function
ISOdates_from_weeknr ($weeknr, $year, $format = '%Y-%m-%d')
{

  $start = strtotime ('1 january ' . $year);
  $week1 = strftime ('%V', $start);
  while ($week1 != '01')
  {

    $start += (7 * 24 * 3600);
    $week1 = strftime ('%V', $start);
  }

  $timestamp_week = strtotime ('+' . ($weeknr - 1) . ' week', $start);
  $weekdag = strftime ('%u', $timestamp_week);
  $dagen_tot_begin_week = $weekdag - 1;
  $dagen_tot_eind_week = 7 - $weekdag;
  $checkdatum = strtotime ("-" . $dagen_tot_begin_week . " days + 3 days", $timestamp_week);
  $check = strftime ('%V', $checkdatum);
  if ($check == '01' && $weeknr > 52)
  {

    echo 'ongeldig weeknummer voor dit jaar' . "\n";
    return false;
  }

  $begindatum = strtotime ("-" . $dagen_tot_begin_week . " days", $timestamp_week);
  $einddatum = strtotime ("+" . $dagen_tot_eind_week . " days", $timestamp_week);
  return array (strftime ($format, $begindatum), strftime ($format, $einddatum));    
}



$begin=$dateweek[0];
$eind=$dateweek[1];
?>
 
PHP hulp

PHP hulp

18/04/2024 18:05:18
 
- Ariën  -
Beheerder

- Ariën -

13/01/2016 20:40:17
Quote Anchor link
Heb je errors en error_reporting al aangezet?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('diplay_errors',1);
?>


ZO ja, welke foutmelding krijg je?
 
Chris Bosmans

chris Bosmans

13/01/2016 20:58:52
Quote Anchor link
ja staat op

en dat is het juist als ik dat zou zien zou ik weten waar het kan aanliggen



hij geeft geen fout melding omdat de pagina gewoon blijft laden. je zien geen beweging alleen ene witte pagina
 
- Ariën  -
Beheerder

- Ariën -

13/01/2016 21:02:55
Quote Anchor link
Ik zie geen brekende functies. Dus ik zou eens als ik jouw was op diverse strategische plekken tijdelijk een echo plaatsen. Vervolgens kan je prima zien welke route je script doorloopt en waar het eindigt in een blanko scherm.
 
DavY -

DavY -

13/01/2016 21:19:04
Quote Anchor link
Daar was pas nog een topic over.. Zoiets?
 
Chris Bosmans

chris Bosmans

13/01/2016 21:20:30
Quote Anchor link
inderdaad dat gebruik ik

ik heb nu de lijnen uit de functie gehaald en deze afzonderlijk aant testen

keep posted
 
DavY -

DavY -

13/01/2016 21:37:25
Quote Anchor link
>>> inderdaad dat gebruik ik

Uh? Die topic is van 31 december 2015.. Niet de topic uit 07/01/2006, waar je deze functie vandaan hebt.
 
Chris Bosmans

chris Bosmans

13/01/2016 21:48:51
Quote Anchor link
ik heb nu alle onderdelen uit de functie gehaald en nu
blijkbaar loopt het mis bij de while loop

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
  while ($week1 != '01')
  {

    $start += (7 * 24 * 3600);
    $week1 = strftime ('%V', $start);
  }

?>


als ik deze uit de echo haal werkt het

wat wil += zeggen? in de while
Gewijzigd op 13/01/2016 21:52:16 door chris Bosmans
 
- SanThe -

- SanThe -

14/01/2016 00:53:45
Quote Anchor link
while ($week1 != '01')

Moet dat niet gewoon dit zijn?

while ($week1 != 1)
 
Ward van der Put
Moderator

Ward van der Put

14/01/2016 10:20:45
Quote Anchor link
Je kunt hier de methode DateTime::setISODate() gebruiken, want daarmee kun je een datum vormen met jaartal plus ISO-weeknummer. Daarmee wordt de functie overzichtelijker:

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
<?php
function getISOWeek($week, $year, $format = 'Y-m-d')
{

    $date = new DateTime();
    $date->setTime(0, 0, 0);

    $date->setISODate($year, $week, 1);
    $first_date = $date->format($format);

    $date->setISODate($year, $week, 7);
    $last_date = $date->format($format);
    
    return array($first_date, $last_date);
}

?>


Als je avontuurlijk bent aangelegd, kun je voor datum- en tijdperioden zoals een week ook nog de klasse DatePeriod gebruiken.
 



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.