Browse Source

pretty formatted datetime string for event

master
n0m1s 10 years ago
parent
commit
eca65dc007
2 changed files with 146 additions and 78 deletions
  1. +100
    -26
      datetimeOperations.php
  2. +46
    -52
      event.php

+ 100
- 26
datetimeOperations.php View File

@ -1,36 +1,110 @@
<?php <?php
$days = array( $days = array(
1 => htmlentities("Lun"),
2 => htmlentities("Mar"),
3 => htmlentities("Mer"),
4 => htmlentities("Jeu"),
5 => htmlentities("Ven"),
6 => htmlentities("Sam"),
7 => htmlentities("Dim")
1 => "Lun",
2 => "Mar",
3 => "Mer",
4 => "Jeu",
5 => "Ven",
6 => "Sam",
7 => "Dim"
); );
$daysFull = array( $daysFull = array(
1 => htmlentities("Lundi"),
2 => htmlentities("Mardi"),
3 => htmlentities("Mercredi"),
4 => htmlentities("Jeudi"),
5 => htmlentities("Vendredi"),
6 => htmlentities("Samedi"),
7 => htmlentities("Dimamche")
1 => "Lundi",
2 => "Mardi",
3 => "Mercredi",
4 => "Jeudi",
5 => "Vendredi",
6 => "Samedi",
7 => "Dimamche"
); );
$months = array( $months = array(
1 => htmlentities("Janvier"),
2 => htmlentities("Fevrier"),
3 => htmlentities("Mars"),
4 => htmlentities("Avril"),
5 => htmlentities("Mai"),
6 => htmlentities("Juin"),
7 => htmlentities("Juillet"),
8 => htmlentities("Août"),
9 => htmlentities("Septembre"),
10 => htmlentities("Octobre"),
11 => htmlentities("Novembre"),
12 => htmlentities("Décembre")
1 => "Janvier",
2 => "Fevrier",
3 => "Mars",
4 => "Avril",
5 => "Mai",
6 => "Juin",
7 => "Juillet",
8 => "Août",
9 => "Septembre",
10 => "Octobre",
11 => "Novembre",
12 => "Décembre"
); );
/**
* @brief gets a pretty formatted hour string
*
* @param $datetime: the strtotime() representation of the time to show
*
* @return a string containing the time (pretty printed)
*/
function printableHour($datetime)
{
$hour = date('G', $datetime);
$minutes = date('I', $datetime);
$ret = $hour.'h';
if($minutes != '00')
$ret .= $minutes;
return $ret;
}
/**
* @brief gets a pretty formatted date and time interval
*
* @param $dtstart: the start datetime of the time interval
* @param $dtend: the end datetime of the time interval
*
* @return a string containing the french representation of the interval
*/
function printableDateTime($dtstart, $dtend)
{
if(date('Y-m-d', $dtstart) == date('Y-m-d', $dtend))
return 'Le '.date('Y-m-d', $dtstart).', de '.printableHour($dtstart).' à '.printableHour($dtend);
else
{
$stringDateTime = 'Du ';
if(date('Y', $dtstart) != date('Y', $dtend))
$stringDateTime .= printableDate($dtstart, true, true);
else if(date('n', $dtstart) != date('n', $dtend))
$stringDateTime .= printableDate($dtstart, true);
else
$stringDateTime .= printableDate($dtstart);
$stringDateTime .= ' à '.printableHour($dtstart).' au '.printableDate($dtend, true, true).' à '.printableHour($dtend);
return $stringDateTime;
}
}
/**
* @brief gets a pretty formatted date
*
* @param $datetime: the datetime to print
* @param $useMonth: should the function print the month?
* @param $useYear: should the function print the year?
*
* @return a string containing the well-formatted date
*/
function printableDate($datetime, $useMonth = false, $useYear = false)
{
global $days, $daysFull, $months;
$year = date('Y', $datetime);
$month = $months[date('n', $datetime)];
$day = date('j', $datetime);
$dayInWeek = strtolower($daysFull[date('N', $datetime)]);
$ret = $dayInWeek.' '.$day;
if($useMonth)
$ret .= ' '.$month;
if($useYear)
$ret .= ' '.$year;
return $ret;
}
?> ?>

+ 46
- 52
event.php View File

@ -1,48 +1,42 @@
<!DOCTYPE html>
<html>
<?php <?php
class MyDB extends SQLite3
{
function __construct()
{
$this->open('testdb.db');
}
}
include_once('databaseOperations.php');
include('datetimeOperations.php');
$db = connect();
if(!isset($_GET['id']) || !is_numeric($_GET['id']))
header('Location:./');
$id = htmlspecialchars($_GET['id']);
$db = new MyDB();
if(!$db) echo $db->lastErrorMsg();
$id = $_GET["id"];
$ret = $db->query('SELECT * FROM event WHERE event_id="'. $id .'"');
$event = $ret->fetchArray(SQLITE3_ASSOC);
$event = getOneEvent($db, $id);
$dtstart = strtotime($event['event_dtstart']);
$dtend = strtotime($event['event_dtend']);
?> ?>
<head>
<title>KiWi calendar : <?php echo $event["event_title"]; ?></title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./main.css" />
<link rel="stylesheet" href="./event.css" />
<link rel="icon" type="image/png" href="favicon.png" />
<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /><![endif]-->
</head>
<body>
<header id="title">
<img alt="logo ESIR" src="./images/esir.png" />
<a href="./index.php"><img class="rightLogo" alt="logo Kiwi" src="./images/KiWiCalendar.png" /></a>
</header>
<div id="descEvent">
<h1><?php echo $event["event_titre"]; ?></h1>
<h2>Date et lieu</h2>
<div id="dateheure">
<?php
date_default_timezone_set('America/Los_Angeles');
$dtstart = new DateTime($event['event_dtstart']);
$dtend = new DateTime($event['event_dtend']);
if($dtstart->format('Y-m-d') == $dtend->format('Y-m-d'))
echo strftime('Le %d %B %Y, ', strtotime($event['event_dtstart'])).strftime('de %Hh%M ', strtotime($event['event_dtstart'])).strftime('&agrave; %Hh%M', strtotime($event['event_dtend']));
else
echo strftime('Du %d %B %Y, %Hh%M', strtotime($event['event_dtstart'])).strftime(' &agrave; %d %B %Y, %Hh%M',strtotime($event['event_dtend']));
?></div>
<?php
<!DOCTYPE html>
<html>
<head>
<title>KiWi calendar : <?php echo $event["event_titre"]; ?></title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./main.css" />
<link rel="stylesheet" href="./event.css" />
<link rel="icon" type="image/png" href="favicon.png" />
<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /><![endif]-->
</head>
<body>
<!-- <?php print_r($event); ?> -->
<header id="title">
<img alt="logo ESIR" src="./images/esir.png" />
<a href="./index.php"><img class="rightLogo" alt="logo Kiwi" src="./images/KiWiCalendar.png" /></a>
</header>
<div id="descEvent">
<h1><?php echo $event["event_titre"]; ?></h1>
<h2>Date et lieu</h2>
<div id="dateheure">
<?php echo htmlentities(printableDateTime($dtstart, $dtend)); ?>
</div>
<?php
echo '<div id="lieu">'.$event["event_localisation"].'</div>'; echo '<div id="lieu">'.$event["event_localisation"].'</div>';
$url = 'https://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($event["event_localisation"]).'&key=AIzaSyB8Cd8NP8VOa0wIlvvYGEMZMzCKwROiHxU'; $url = 'https://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($event["event_localisation"]).'&key=AIzaSyB8Cd8NP8VOa0wIlvvYGEMZMzCKwROiHxU';
$obj = json_decode(file_get_contents($url), true); $obj = json_decode(file_get_contents($url), true);
@ -54,23 +48,23 @@
src="'.$urlFrame.'" style="width:100%;height:500px;margin-bottom:-30px;"></iframe>'; src="'.$urlFrame.'" style="width:100%;height:500px;margin-bottom:-30px;"></iframe>';
if(isset($event["event_urlImage"]) || isset($event["event_description"])) if(isset($event["event_urlImage"]) || isset($event["event_description"]))
echo '<div id="descDiv" style="margin-top:30px;"><h2>Description</h2></div>';
echo '<div id="descDiv" style="margin-top:30px;"><h2>Description</h2></div>';
if(isset($event["event_urlImage"])) if(isset($event["event_urlImage"]))
echo '<div id="image"><img src="'.$event["event_urlImage"].'" width="100%"></div>';
echo '<div id="image"><img src="'.$event["event_urlImage"].'" width="100%"></div>';
if(isset($event["event_description"])) if(isset($event["event_description"]))
echo '<div id="description">'.$event["event_description"].'</div>';
echo '<div id="description">'.$event["event_description"].'</div>';
if(isset($event["event_site"]) || isset($event["event_contact"])) if(isset($event["event_site"]) || isset($event["event_contact"]))
echo '<h2>Informations</h2>';
echo '<h2>Informations</h2>';
if(isset($event["event_site"])) if(isset($event["event_site"]))
echo '<div id="URL">URL : <a href="'.$event["event_site"].'">'.$event["event_site"].'</a></div>';
echo '<div id="URL">URL : <a href="'.$event["event_site"].'">'.$event["event_site"].'</a></div>';
if(isset($event["event_contact"])) if(isset($event["event_contact"]))
echo '<div id="Contact">Contact : <a href="mailto:'.$event["event_contact"].'">'.$event["event_contact"].'</a></div>';
?>
</div>
echo '<div id="Contact">Contact : <a href="mailto:'.$event["event_contact"].'">'.$event["event_contact"].'</a></div>';
?>
</div>
<!-- bring in the google maps library -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<!-- bring in the google maps library -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</body>
</body>
</html> </html>

Loading…
Cancel
Save