2
0
forked from Wavyzz/dolibarr

Fix: Use dayling savint time

This commit is contained in:
Laurent Destailleur
2011-05-20 18:15:13 +00:00
parent e91e2a3f5b
commit 01442dda88
4 changed files with 34 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -165,20 +165,27 @@ $var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> price(1234.56)</td><td>'.price(1234.56).'</td>';
//print '<tr class="liste_titre"><td>'.$langs->trans("TimeZone").'</td><td>'.$langs->trans("Value").'</td></tr>'."\n";
// Timezone
// PHP server
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("OSTZ").' (variable system TZ)</td><td>'.$_ENV["TZ"].'</td></tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("PHPTZ").' (php.ini date.timezone)</td><td>'.ini_get("date.timezone").'</td></tr>'."\n"; // date.timezone must be in valued defined in http://fr3.php.net/manual/en/timezones.europe.php
$txt =$langs->trans("OSTZ").' (variable system TZ): '.$_ENV["TZ"].'<br>'."\n";
$txt.=$langs->trans("PHPTZ").' (php.ini date.timezone): '.ini_get("date.timezone").''."\n"; // date.timezone must be in valued defined in http://fr3.php.net/manual/en/timezones.europe.php
if (function_exists('date_default_timezone_get'))
{
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("CurrentTimeZone").'</td><td>'; // Timezone server PHP
print date_default_timezone_get();
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("CurrentTimeZone").'</td><td>'; // Timezone server PHP
$a=date_default_timezone_get();
$a.=' ('.(-dol_mktime(0,0,0,1,1,1970)>0?'+':'').(-dol_mktime(0,0,0,1,1,1970)).')';
print $form->textwithtooltip($a,$txt,2,1,img_info());
print '</td></tr>'."\n"; // value defined in http://fr3.php.net/manual/en/timezones.europe.php
}
else
{
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("PHPServerOffsetWithGreenwich").'</td><td>'.(-dol_mktime(0,0,0,1,1,1970)>0?'+':'').(-dol_mktime(0,0,0,1,1,1970)).'</td></tr>'."\n";
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("PHPServerOffsetWithGreenwich").'</td><td>';
$a=(-dol_mktime(0,0,0,1,1,1970)>0?'+':'').(-dol_mktime(0,0,0,1,1,1970));
print $form->textwithtooltip($a,$txt,2,1,img_info());
print '</td></tr>'."\n";
}
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("CurrentHour").'</td><td>'.dol_print_date(dol_now(),'dayhour','tzserver').'</td></tr>'."\n";
$var=!$var;
@@ -195,9 +202,11 @@ $var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("CompanyHour").'</td><td>'.$langs->trans("FeatureNotYetAvailable").'</td></tr>'."\n";
# Client
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("ClientTZ").'</td><td>'.($_SESSION['dol_tz']!=''?($_SESSION['dol_tz']>=0?'+':'').$_SESSION['dol_tz']:'').'</td></tr>'."\n";
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("ClientTZ").'</td><td>'.($_SESSION['dol_tz']!=''?($_SESSION['dol_tz']>=0?'+':'').$_SESSION['dol_tz']:'').' ('.($_SESSION['dol_tz']>=0?'+':'').($_SESSION['dol_tz']*60*60).')</td></tr>'."\n";
//$var=!$var;
//print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("ClientOffsetWithGreenwich").'</td><td>'..'</td></tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("ClientOffsetWithGreenwich").'</td><td>'.($_SESSION['dol_tz']>=0?'+':'').($_SESSION['dol_tz']*60*60).'</td></tr>'."\n";
print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("DaylingSavingTime").'</td><td>'.($_SESSION['dol_dst']>=0?yn(1):yn(0)).' ('.($_SESSION['dol_dst']>=0?'+':'').($_SESSION['dol_dst']*60*60).')</td></tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("ClientHour").'</td><td>'.dol_print_date(dol_now(),'dayhour','tzuser').'</td></tr>'."\n";
#print "<tr ".$bc[$var]."><td width=\"300\">=> ".$langs->trans("ClientHour")."</td><td>".$langs->trans("FeatureNotYetAvailable")."</td></tr>\n";

View File

@@ -106,7 +106,8 @@ OSTZ=Time Zone OS server
PHPTZ=Time Zone PHP server
PHPServerOffsetWithGreenwich=PHP server offset width Greenwich (seconds)
ClientOffsetWithGreenwich=Client/Browser offset width Greenwich (seconds)
CurrentHour=PHP server hour
DaylingSavingTime=Daylight saving time (user)
CurrentHour=Hour PHP (server)
CompanyTZ= Time Zone company (main company)
CompanyHour= Hour company (main company)
CurrentSessionTimeOut=Current session timeout

View File

@@ -107,7 +107,8 @@ OSTZ= Time Zone OS
PHPTZ= Time Zone config PHP
PHPServerOffsetWithGreenwich= Offset serveur PHP avec Greenwich (secondes)
ClientOffsetWithGreenwich= Offset client/navigateur avec Greenwich (secondes)
CurrentHour= Heure serveur PHP
DaylingSavingTime=Heure d'été (utilisateur)
CurrentHour= Heure PHP (serveur)
CompanyTZ= Time Zone société (maison mère)
CompanyHour= Heure société (maison mère)
CurrentSessionTimeOut= Time out session courante

View File

@@ -558,27 +558,27 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
global $conf,$langs;
$to_gmt=false;
$offset=0;
$offsettz=$offsetdst=0;
if ($tzoutput)
{
$to_gmt=true; // For backward compatibility
$offset=0;
if (is_string($tzoutput))
{
if ($tzoutput == 'tzserver')
{
$to_gmt=false;
$offset=0;
$offsettz=$offsetdst=0;
}
if ($tzoutput == 'tzuser')
{
$to_gmt=true;
$offset=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60;
$offsettz=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60;
$offsetdst=(empty($_SESSION['dol_dst'])?0:$_SESSION['dol_dst'])*60*60;
}
if ($tzoutput == 'tzcompany')
{
$to_gmt=false;
$offset=0; // TODO Define this and use it later
$offsettz=$offsetdst=0; // TODO Define this and use it later
}
}
}
@@ -639,14 +639,14 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
$ssec = $reg[6];
$time=dol_mktime($shour,$smin,$ssec,$smonth,$sday,$syear,true);
$ret=adodb_strftime($format,$time+$offset,$to_gmt);
$ret=adodb_strftime($format,$time+$offsettz+$offsetdst,$to_gmt);
}
else
{
// Date is a timestamps
if ($time < 100000000000) // Protection against bad date values
{
$ret=adodb_strftime($format,$time+$offset,$to_gmt);
$ret=adodb_strftime($format,$time+$offsettz+$offsetdst,$to_gmt);
}
else $ret='Bad value '.$time.' for date';
}
@@ -654,7 +654,7 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
if (preg_match('/__b__/i',$format))
{
// Here ret is string in PHP setup language (strftime was used). Now we convert to $outputlangs.
$month=adodb_strftime('%m',$time+$offset);
$month=adodb_strftime('%m',$time+$offsettz+$offsetdst);
if ($encodetooutput)
{
$monthtext=$outputlangs->transnoentities('Month'.$month);
@@ -673,7 +673,7 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
}
if (preg_match('/__a__/i',$format))
{
$w=adodb_strftime('%w',$time+$offset);
$w=adodb_strftime('%w',$time+$offsettz+$offsetdst);
$dayweek=$outputlangs->transnoentitiesnoconv('Day'.$w);
$ret=str_replace('__A__',$dayweek,$ret);
$ret=str_replace('__a__',dol_substr($dayweek,0,3),$ret);