OVH Cloud OVH Cloud

[debutant] date en francais

6 réponses
Avatar
n.b
J'ai récupéré un petit mini-script pour un mini-agenda qui me plaît bien
pour sa légèreté et sa simplicité mais je ne sais pas comment faire
afficher les dates en français. J'ai essayé de placer les fonctions
setlocale (LC_TIME, 'fr_FR');
strftime ("%A %e %B $a");
mais ça ne marche pas. Comment faire ?
Ci-dessous le script en entier (ça peut toujours servir):

<?
$Host = "";
$User = "";
$PassWord = "";
$DataBaseName = "";
$TableName = "";
mysql_connect($Host, $User, $PassWord);
mysql_select_db($DataBaseName);
//This below will create your table for you if it does not exist.
//Feel free to comment it out once the table is created.
$Tables = mysql_query("show tables like '" . $TableName . "'");
if(mysql_fetch_row($Tables) === false)
{
$create = "create table " . $TableName .
"(" .
"id int primary key auto_increment, " .
"text text, " .
"day int, " .
"month int, " .
"year int " .
")";
mysql_query($create);
}
$Entered_UserName = "";
$Entered_PassWord = "";
if(isset($HTTP_COOKIE_VARS["UserName"]) &&
isset($HTTP_COOKIE_VARS["PassWord"]))
{
$Entered_UserName = $HTTP_COOKIE_VARS["UserName"];
$Entered_PassWord = $HTTP_COOKIE_VARS["PassWord"];
}
$isLogged = true;
if($Entered_UserName != $User || $Entered_PassWord != $PassWord)

$isLogged = false;
//Execute MySQL queries if someone is logged in.
if($isLogged == true)
{
if(param("save") != "")
{
for($week_day = 0; $week_day <= 7; $week_day++)
{
$day = param("day" . $week_day);
$month = param("month" . $week_day);
$year = param("year" . $week_day);
$text = trim(param("text" . $week_day));
$Select = "select count(id) from " . $TableName . " where day =
" . $day .
" and month = " . $month .
" and year = " . $year;
$entries = mysql_query($Select);
if($entry[0] < 1)
{
if($text != "")
{
$Insert = "insert into " . $TableName . " (text, day, month,
year) values ('" . $text . "', " .
$day . ", " . $month . ", " . $year . ")";
//If there is no entry in the table for that day, create it.

mysql_query($Insert);
}
}
else
{
if($text != "")
{
$Update = "update " . $TableName . " set text ='" . $text .
"' where day = " . $day .
" and month = " . $month . " and year = " . $year;

mysql_query($Update);
}
else
{
$Delete = "delete from " . $TableName . " where day = " . $day .
" and month = " . $month . " and year = " . $year;
//No point in keeping empty records in the table.
mysql_query($Delete);
}
}
}
}
}
function schedule($date)
{
//If no parameter is passed use the current date.
if($date == null)
$date = getDate();
$day = $date["mday"];
$week_day = $date["wday"];
$month = $date["mon"];
$month_name = $date["month"];
$year = $date["year"];
$today = getDate(mktime(0, 0, 0, $month, $day, $year));
$sunday = $day - $week_day;
$saturday = $day + (6 - $week_day);

$schedule_html = "<table height=\"100%\" width=\"100%\"
cellspacing=\"20\">\n";
$schedule_html .= "<tr><td align=\"right\" valign=\"top\">\n";

global $previous_month;
global $this_month;
global $next_month;
$previous_month = getDate(mktime(0, 0, 0, $month - 1, 1, $year));
$this_month = getDate(mktime(0, 0, 0, $month, 1, $year));
$next_month = getDate(mktime(0, 0, 0, $month + 1, 1, $year));

$first_week_day = $this_month["wday"];
$days_in_this_month = floor(($next_month[0] - $this_month[0])
/ (60 * 60 * 24));
$schedule_html .= "<table>\n";
$schedule_html .= "<tr><td align=\"center\"
class=\"calendar_cell\">" .
"<a class=\"calendar_date\" " .
"href=\"paris.php?month=" .
$previous_month["mon"] . "&year=" . $previous_month["year"] .
"\"><</a></td>\n";

$schedule_html .= "<td colspan=\"5\" align=\"center\"
class=\"calendar_cell\">" .
"<font class=\"calendar_month\">" .
$month_name . " " . $year . "</font></td>\n";

$schedule_html .= "<td align=\"center\"
class=\"calendar_cell\">" .
"<a class=\"calendar_date\" " .
"href=\"paris.php?month=" .
$next_month["mon"] . "&year=" . $next_month["year"] .
"\">></a></td></tr>\n";
$schedule_html .= "<tr>\n";
//Fill the first week of the month with the appropriate number
of blanks.
for($week_day = 0; $week_day < $first_week_day; $week_day++)
{
$schedule_html .= "<td class=\"calendar_cell\">&nbsp;</td>";
}
$week_day = $first_week_day;
for($day_counter = 1; $day_counter <= $days_in_this_month;
$day_counter++)
{
$week_day %= 7;
if($week_day == 0)
$schedule_html .= "</tr><tr>\n";
//Do something different for the current day.
if($day == $day_counter)
$schedule_html .= "<td class=\"calendar_current_cell\"
align=\"center\"><font class=\"calendar_current_date\">" . $day_counter
. "</font></td>\n";
else
$schedule_html .= "<td align=\"center\"
class=\"calendar_cell\">&nbsp;" .
"<a class=\"calendar_date\"
href=\"paris.php?day=" . $day_counter . "&month=" . $month . "&year=" .
$year . "\">" .
$day_counter . "</a>&nbsp;</td>\n";

$week_day++;
}
$schedule_html .= "</tr>\n";
$schedule_html .= "</table>\n";
$schedule_html .= "<br /><br />\n";
//Login.
global $isLogged;
$schedule_html .= "<table align=\"right\">\n";

if($isLogged == true)
{
$schedule_html .= "<tr>";
$schedule_html .= "<td>";
$schedule_html .= "<input type=\"hidden\" name=\"save\"
value=\"yes\" />";
$schedule_html .= "<input type=\"button\" value=\"log out\"
class=\"calendar_cell\" ";
$schedule_html .= "onclick=\"clearCookie('UserName');";
$schedule_html .= "clearCookie('PassWord');";
$schedule_html .= "document.EmptyForm.submit();\" />";

$schedule_html .= "</td>";
$schedule_html .= "<td width=\"33%\"></td>";
$schedule_html .= "<td>";
$schedule_html .= "<input type=\"button\" value=\"save\"
class=\"calendar_cell\" ";
$schedule_html .= "onclick=\"document.save.submit();\" />";
$schedule_html .= "</td>";
$schedule_html .= "</tr>\n";
}
else
{
$schedule_html .= "<form name=\"login\">";
$schedule_html .= "<tr>";
$schedule_html .= "<td align=\"right\">";
$schedule_html .= "<input type=\"text\" name=\"UserName\"
class=\"calendar_cell\" />";
$schedule_html .= "</td>";
$schedule_html .= "</tr>";
$schedule_html .= "<tr>";
$schedule_html .= "<td align=\"right\">";
$schedule_html .= "<input type=\"password\"
name=\"PassWord\" class=\"calendar_cell\" />";
$schedule_html .= "</td>";
$schedule_html .= "</tr>";
$schedule_html .= "<tr>";
$schedule_html .= "<td align=\"right\">";
$schedule_html .= "<input type=\"button\" value=\"log in\"
class=\"calendar_cell\" ";
$schedule_html .= "onclick=\"setCookie('UserName',
document.login.UserName.value);";
$schedule_html .= "setCookie('PassWord',
document.login.PassWord.value);";
$schedule_html .= "document.EmptyForm.submit();\" />";

$schedule_html .= "</td>";
$schedule_html .= "</tr>";
$schedule_html .= "</form>\n";
}
$schedule_html .= "<form name=\"EmptyForm\" method=\"post\">\n";
$schedule_html .= "</form>\n";
$schedule_html .= "</table>\n";
$schedule_html .= "</td>\n";
$schedule_html .= "<td valign=\"top\" width=\"100%\"><table
width=\"100%\" cellpadding=\"10\">\n";
if($isLogged == true)
{
$schedule_html .= "<form name=\"save\" method=\"post\">\n";
$schedule_html .= "<input type=\"hidden\" name=\"save\"
value=\"save\">\n";
}
for($index = $sunday; $index <= $saturday; $index++)
{
$date = getDate(mktime(0, 0, 0, $month, $index, $year));

$schedule_date = "schedule_date";
$schedule_entry = "schedule_entry";
if(($month > $date["mon"] && $year == $date["year"]) ||
$year > $date["year"])
{
$schedule_date = "schedule_date_previous";
$schedule_entry = "schedule_entry_previous";
}
if(($month < $date["mon"] && $year == $date["year"]) ||
$year < $date["year"])
{
$schedule_date = "schedule_date_next";
$schedule_entry = "schedule_entry_next";
}

$schedule_html .= "<tr><td align=\"right\" class=\"" .
$schedule_date . "\">";
$schedule_html .= $date["weekday"] . " " .
$date["month"] . " " .
$date["mday"] . ", " .
$date["year"] . "\n";
$schedule_html .= "</br>\n";
$schedule_text = getSchedule($date["mday"], $date["mon"],
$date["year"]);
$readonly = "readonly";
if($isLogged == true)
$readonly = "";
if($isLogged == true)
{
$schedule_html .= "<input type=\"hidden\" name=\"day" .
$date["wday"] . "\" value=\"" . $date["mday"] . "\" />\n";
$schedule_html .= "<input type=\"hidden\" name=\"month" .
$date["wday"] . "\" value=\"" . $date["mon"] . "\" />\n";
$schedule_html .= "<input type=\"hidden\" name=\"year" .
$date["wday"] . "\" value=\"" . $date["year"] . "\" />\n";
}
$schedule_html .= "<textarea wrap=\"off\" name=\"text" .
$date["wday"] . "\" class=\"" .
$schedule_entry . "\"
style=\"width:100%;overflow:auto;\" rows=\"" .
rows($schedule_text) . "\" " . $readonly
. ">\n" .
$schedule_text . "</textarea>\n";
$schedule_html .= "</td></tr>\n";
}

if($isLogged == true)
$schedule_html .= "</form>\n";

$schedule_html .= "</table></td></tr>\n";

$schedule_html .= "</table>\n";

return($schedule_html);
}
function getSchedule($day, $month, $year)
{
global $TableName;

$Select = "select text from " . $TableName . " where " .
"day = " . $day . " and " .
"month = " . $month . " and " .
"year = " . $year;
$Schedule = mysql_query($Select);

if($Text = mysql_fetch_assoc($Schedule))
{
return($Text["text"]);
}
else
{
return("");
}
}
function rows($text)
{
return(substr_count($text, "\n") + 1);
}
function param($Name)
{
global $HTTP_GET_VARS;
global $HTTP_POST_VARS;

if(isset($HTTP_GET_VARS[$Name]))
return($HTTP_GET_VARS[$Name]);

if(isset($HTTP_POST_VARS[$Name]))
return($HTTP_POST_VARS[$Name]);
return("");
}
$day = param("day");
$month = param("month");
$year = param("year");
$date = null;
if($year != "")
{
if($day == "")
$day = 1;
if($month == "")
$month = 1;
$date = getDate(mktime(0, 0, 0, $month, $day, $year));
}
$agenda = schedule($date);
$previous_month;
$this_month;
$next_month;
$body = Array
("background-color:ffffff;");
$calendar_month = Array
("color:000000; font-weight:bold;");
$calendar_cell = Array
("background-color:ffffff; border:1; border-style:solid;
border-color:000000; color:000000;");
$calendar_current_cell = Array
("background-color:eeeeff; border:1; border-style:solid;
border-color:0000ff;");
$calendar_date = Array
("background-color:ffffff; color:000000; text-decoration:none;");
$calendar_current_date = Array
("background-color:eeeeff; color:000000; text-decoration:none;
font-weight:bold;");
$schedule_date = Array
("color:000000; font-weight:bold; background-color:ffffff; border:1;
border-style:solid; border-color:000000;");
$schedule_entry = Array
("color:000000; background-color:ffffff; border-style:none;");
?>
<html>
<head>
<title>agenda calendar</title>
<style>
body
{
&lt;?= $body[$this_month["mon"] - 1] ?&gt;
}
.calendar_month
{
&lt;?= $calendar_month[$this_month["mon"] - 1] ?&gt;
}
.calendar_cell
{
&lt;?= $calendar_cell[$this_month["mon"] - 1] ?&gt;
}
.calendar_current_cell
{
&lt;?= $calendar_current_cell[$this_month["mon"] - 1] ?&gt;
}
.calendar_date
{
&lt;?= $calendar_date[$this_month["mon"] - 1] ?&gt;
}
.calendar_current_date
{
&lt;?= $calendar_current_date[$this_month["mon"] - 1] ?&gt;
}
.schedule_date_previous
{
&lt;?= $schedule_date[$previous_month["mon"] - 1] ?&gt;
}
.schedule_date
{
&lt;?= $schedule_date[$this_month["mon"] - 1] ?&gt;
}
.schedule_date_next
{
&lt;?= $schedule_date[$next_month["mon"] - 1] ?&gt;
}
.schedule_entry_previous
{
&lt;?= $schedule_entry[$previous_month["mon"] - 1] ?&gt;
}
.schedule_entry
{
&lt;?= $schedule_entry[$this_month["mon"] - 1] ?&gt;
}
.schedule_entry_next
{
&lt;?= $schedule_entry[$next_month["mon"] - 1] ?&gt;
}
</style>
<script>
function setCookie(name, value)
{
//If name is the empty string, it places a ; at the beginning
//of document.cookie, causing clearCookies() to malfunction.
if(name != '')
document.cookie = name + '=' + value;
}
function clearCookie(name)
{
expires = new Date();
expires.setYear(expires.getYear() - 1);

document.cookie = name + '=null' + '; expires=' + expires;
}
</script>
</head>
<body>
<?= $agenda ?>
</body>
</html>

6 réponses

Avatar
Guillaume Bouchard
n.b wrote:
J'ai récupéré un petit mini-script pour un mini-agenda qui me plaît bien
pour sa légèreté et sa simplicité mais je ne sais pas comment faire
afficher les dates en français. J'ai essayé de placer les fonctions
setlocale (LC_TIME, 'fr_FR');
strftime ("%A %e %B $a");
mais ça ne marche pas. Comment faire ?


Alors je vais te repondre à coté de la plaque, mais je ne me suis jamais
interessé à ces fonctions (a tord sans doute...) et je n'ai pas entendu
grand monde annoncer qu'elles fonctionaient correctement.

Le truc simple que je fais, c'est deux tableaux qui contienent les nom
des jours et de mois

$day = array('Lundi',.....'Dimanche');
$month = array('Janvier',....'Décembre');

Il suffit après de recuperer les valeurs qui vont bien avec la fonction
date (http://www.php.net/date) et tout roule...

Ci-dessous le script en entier (ça peut toujours servir):


La prochaine foix, met celui ci sur une page web et donne l'url :)

--
Guillaume.

Avatar
n.b
Le truc simple que je fais, c'est deux tableaux qui contienent les nom
des jours et de mois
$day = array('Lundi',.....'Dimanche');
$month = array('Janvier',....'Décembre');


OK

Il suffit après de recuperer les valeurs qui vont bien avec la fonction
date (http://www.php.net/date) et tout roule...


Je n'arrive à rien, c'est-à-dire que les dates restent en anglais (ou
erreur)

Avatar
Jacky Goyon
"n.b" a écrit dans le message news:
ccc2mj$583$
J'ai récupéré un petit mini-script pour un mini-agenda qui me plaît bien
pour sa légèreté et sa simplicité mais je ne sais pas comment faire
afficher les dates en français. J'ai essayé de placer les fonctions
setlocale (LC_TIME, 'fr_FR');
strftime ("%A %e %B $a");
mais ça ne marche pas. Comment faire ?
voici un petit script qui fonctionne à http://math.phpnet.org/date_fr/


<div align="right" style=" border-style: solid;border-width:
1;width:100;background-color: white;border-color: #666666;">
<center>
<?php setlocale(LC_TIME,"fr_FR");$jour_voulu mktime(0,0,0,date("n"),date("j"),date("Y"));echo strftime("%A",$jour_voulu);
?>
<br><font color="red" size="200%"><b><?php echo
strftime("%d",$jour_voulu); ?> </b></font>
<br><?php echo strftime("%B",$jour_voulu); ?>
</center>
</div>

Jacky

Avatar
P'tit Marcel
"n.b" écrivit news:ccdpf8$ivs$:

Le truc simple que je fais, c'est deux tableaux qui contienent les nom
des jours et de mois
$day = array('Lundi',.....'Dimanche');
$month = array('Janvier',....'Décembre');



pas OK
faire plutôt:
$day = array(1 => 'Lundi', ....., 'Dimanche');
$month = array(1 => 'Janvier',...., 'Décembre');


Il suffit après de recuperer les valeurs qui vont bien avec la fonction
date (http://www.php.net/date) et tout roule...


Je n'arrive à rien, c'est-à-dire que les dates restent en anglais (ou
erreur)


même avec ça ?

echo $day[date('d')]." ".$month[date('m')]." ".date('Y');

eça
--
P'tit Marcel


Avatar
Thibaut
n.b wrote:
Je n'arrive à rien, c'est-à-dire que les dates restent en anglais (ou
erreur)


Tu bosses sous quel os ? je crois avoir lu qu'il y avait des
particularité pour l'utilisation de setlocal avec windows :

http://fr2.php.net/setlocale
Astuce : Les utilisateurs de Windows trouverons des informations utiles
à propos du paramètre locale sur le site web MSDN de Microsoft. Les
valeurs de locales supportées peuvent être trouvées ici et les chaînes
de pays/région ici. Les systèmes Windows supportent les codes à trois
lettres pour les pays/régions spécifiés par ISO 3166-Alpha-3, qui peut
être trouvé sur le site web Unicode .

J'utilise cette fonction un peu partout et je n'ai absolument aucun
souci (sous unix et 2 distribs différentes de linux)


--
Thibaut [pour répondre par email il suffit d'enlever ses chaussettes]
------------------------------------------------------------------------

Avatar
dwojylac.nospam
Thibaut wrote:

n.b wrote:
Je n'arrive à rien, c'est-à-dire que les dates restent en anglais (ou
erreur)


Tu bosses sous quel os ? je crois avoir lu qu'il y avait des
particularité pour l'utilisation de setlocal avec windows :

http://fr2.php.net/setlocale
Astuce : Les utilisateurs de Windows trouverons des informations utiles
à propos du paramètre locale sur le site web MSDN de Microsoft. Les
valeurs de locales supportées peuvent être trouvées ici et les chaînes
de pays/région ici. Les systèmes Windows supportent les codes à trois
lettres pour les pays/régions spécifiés par ISO 3166-Alpha-3, qui peut
être trouvé sur le site web Unicode .

J'utilise cette fonction un peu partout et je n'ai absolument aucun
souci (sous unix et 2 distribs différentes de linux)


voir :
http://www.nexen.net/docs/php/annotee/function.setlocale.php

setlocale n'est pas nécessairement installé en standart sur tous les
serveurs; Donc cela dépend de ton hébergeur. (Chez online cela
fonctionne).
sinon reste la solution de faire cela "à la main" avec un tableau comme
évoqué dans ce post

--
Dominique
http://wojylac.free.fr