Automatisch op wisseling zomer- of wintertijd actie uitvoeren.
Nu wil ik als het zomertijd wordt (vannacht dus) deze query uitvoeren:
En als het wintertijd wordt deze:
Mijn vragen:
A) Is dit correct (dus klok vooruit, is het dan time-zone + 1)?
B) Hoe kan ik dit automatisch twee keer per jaar laten aanroepen in het jaar, op de wisselingstijd (zeg: 1:58)? Dus dat het niet 2x gebeurt. Zo voorkom ik bij wintertijd dat het een uur te vroeg gebeurt en bij de zomertijd (vannacht dus), dat het overgeslagen wordt. Immers: 1:59 wordt daarna 3:00. Dus om 2:00 iets doen werkt niet.
Is hier een cronjob voor? Of gewoon elke dag even laten uitvoeren en PHP laten kijken of het nodig is?
1. phpBB3 heeft volgensmij zelf al een instelling zodat de gebruiker DST (zomertijd) kan uitzetten en ik neem dus aan dat dit automatisch wordt gedaan
2. Waarschijnlijk woont niet iedereen in Nederland, en in andere landen verandert de zomertijd andersom.
3. De timezone verandert niet, alleen de DST instelling, het is hier altijd UTC+1
Maar dan moet iedereen handmatig dat veranderen. Dat wil ik dus automatisch/geforceerd doen.
Maar over de tijdzone heb je wel gelijk: de DST verandert. Eens kijken waar dat zit.
De cronjob-syntax:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
* min 58
* uur 1
* dag vd maand *
* maand 3, 10 (= maart en oktober)
* dag van de week 7 (= zondag)
* actie: wget -O /dev/null -q * http://www.zundappforum.com/maker_zomerwintertijd.php
* uur 1
* dag vd maand *
* maand 3, 10 (= maart en oktober)
* dag van de week 7 (= zondag)
* actie: wget -O /dev/null -q * http://www.zundappforum.com/maker_zomerwintertijd.php
Toevoeging op 30/03/2013 11:45:08:
Ik heb nu dit script:
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
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
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
<?php
/* script om zomertijd en wintertijd in te schakelen op een phpBB 3-forum.
*
* Wordt automatisch door cronjob uitgevoerd op:
* min 58
* uur 1
* dag vd maand *
* maand 3, 10 (= maart en oktober)
* dag van de week 7 (= zondag)
* actie: wget -O /dev/null -q * http://www.zundappforum.com/maker_zomerwintertijd.php
*/
// Wordt het winter? +1
// Wordt het zomer? -1
if(date("n") < 6)
{
// het is nog voorjaar, dus klok moet vooruit gezet worden
$dst = 1;
}
else
{
// het is al zomer geweest, het wordt winter: dus klok achteruit
$dst = 0;
}
// query maken
// update elk account (behalve de bots)
$query = " UPDATE phpbb_users
SET user_dst = ".$dst."
WHERE user_id > 52
AND user_id = 54";
// shit laden voor phpBB-toegang
ini_set("safe_mode", false);
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include ($phpbb_root_path . 'common.' . $phpEx);
// query uitvoeren
$result = mysql_query($query);
if($result === false)
{
// er was een bekende fout
echo 'Fout in het uitvoeren van de query: ' . $query;
}
else
{
// query gelukt, als goed is klaar?
if(mysql_affected_rows() > 0)
{
echo 'Alles ging goed. De DST is bij ' . mysql_affected_rows() . ' rijen aangepast.';
}
else
{
// geen false, maar ook niets gedaan? Gaat dus ook fout.
echo 'Query gelukt, maar geen rijen aangepast...';
}
}
?>
/* script om zomertijd en wintertijd in te schakelen op een phpBB 3-forum.
*
* Wordt automatisch door cronjob uitgevoerd op:
* min 58
* uur 1
* dag vd maand *
* maand 3, 10 (= maart en oktober)
* dag van de week 7 (= zondag)
* actie: wget -O /dev/null -q * http://www.zundappforum.com/maker_zomerwintertijd.php
*/
// Wordt het winter? +1
// Wordt het zomer? -1
if(date("n") < 6)
{
// het is nog voorjaar, dus klok moet vooruit gezet worden
$dst = 1;
}
else
{
// het is al zomer geweest, het wordt winter: dus klok achteruit
$dst = 0;
}
// query maken
// update elk account (behalve de bots)
$query = " UPDATE phpbb_users
SET user_dst = ".$dst."
WHERE user_id > 52
AND user_id = 54";
// shit laden voor phpBB-toegang
ini_set("safe_mode", false);
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include ($phpbb_root_path . 'common.' . $phpEx);
// query uitvoeren
$result = mysql_query($query);
if($result === false)
{
// er was een bekende fout
echo 'Fout in het uitvoeren van de query: ' . $query;
}
else
{
// query gelukt, als goed is klaar?
if(mysql_affected_rows() > 0)
{
echo 'Alles ging goed. De DST is bij ' . mysql_affected_rows() . ' rijen aangepast.';
}
else
{
// geen false, maar ook niets gedaan? Gaat dus ook fout.
echo 'Query gelukt, maar geen rijen aangepast...';
}
}
?>
Ik ben zelf user 54, dus om het even te testen.
Even een snelle test doet het goed, dus vannacht maar afwachten wat er gebeurt.