begin process at 2012 02 12 00:08:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > AFFICHAGE AGRÉABLE D'UNE DATE DE PUBLICATION (EN ANGLAIS)

AFFICHAGE AGRÉABLE D'UNE DATE DE PUBLICATION (EN ANGLAIS)


 Information sur la source

Note :
Aucune note
Catégorie :Date & Heure Classé sous :dates, pubdate, heure, timezone, durée Niveau :Débutant Date de création :08/07/2007 Date de mise à jour :09/07/2007 18:35:06 Vu :7 433

Auteur : olid

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cette fonction adapte le texte de la date selon son ancienneté, avec une expression plus sympathique.

Exemples:
- 34 minutes ago
- Yesterday at 09:16 am
- Monday, 2nd April

A la question "pourquoi afficher une date en javascript plutôt que en dur dans le code HTML ?", je répondrais que çà permet d'adapter les heures au fuseau horaire de l'internaute ;o) .oO(étudiez l'astuce des SPAN avec la classe PubDate des Life-Lines)

Source

  • function elapsedTimeString(Day0)
  • {
  • var Days = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  • var Months = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
  • var Year0 = Day0.getFullYear();
  • var MonthNr0 = Day0.getMonth()+1;
  • var DayNr0 = Day0.getDate();
  • var Hours0 = Day0.getHours();
  • var Minutes0 = Day0.getMinutes();
  • var Seconds0 = Day0.getSeconds();
  • var TimeStamp0 = Date.UTC(Year0,MonthNr0-1,DayNr0,Hours0,Minutes0,Seconds0);
  • var Day1 = new Date();
  • var Year1 = Day1.getFullYear();
  • var MonthNr1 = Day1.getMonth()+1;
  • var DayNr1 = Day1.getDate();
  • var Hours1 = Day1.getHours();
  • var Minutes1 = Day1.getMinutes();
  • var Seconds1 = Day1.getSeconds();
  • var TimeStamp1 = Date.UTC(Year1,MonthNr1-1,DayNr1,Hours1,Minutes1,Seconds1);
  • var Ecart = TimeStamp1 - TimeStamp0;
  • if (Ecart <= 0)
  • {
  • return 'today';
  • }
  • else if (Ecart <= 1000 * 60)
  • {
  • return Math.round(Ecart / 1000)+'s ago';
  • }
  • else if (Ecart <= 1000 * 60 * 60)
  • {
  • return Math.round(Ecart / (1000*60))+'min ago';
  • }
  • else if ((Ecart <= 1000 * 60 * 60 *24) && (DayNr1 == DayNr0))
  • {
  • ElapsedHours = Math.round(Ecart / (1000*60*60));
  • if (ElapsedHours == 1)
  • {
  • return '1 hour ago';
  • }
  • else
  • {
  • return ElapsedHours+'hours ago';
  • }
  • }
  • else
  • {
  • var HoursOP = Hours0;
  • var ampmOP = "am";
  • if (HoursOP == 0) HoursOP = 12;
  • if (HoursOP > 11)
  • ampmOP = "pm";
  • if (HoursOP > 12)
  • HoursOP -= 12;
  • HoursOP = leading2Zero(HoursOP);
  • var MinutesOP = leading2Zero(Minutes0);
  • if (Ecart <= (1000 * 60 * 60 * 24))
  • {
  • return 'yesterday at ' + HoursOP + ':' + MinutesOP + ' ' + ampmOP;
  • }
  • else
  • {
  • var DayName0 = Days[Day0.getDay()];
  • if (Ecart <= (1000 * 60 * 60 * 24 * 7))
  • {
  • return DayName0+' at ' + HoursOP + ':' + MinutesOP + ' ' + ampmOP;
  • }
  • else
  • {
  • var MonthName0 = Months[MonthNr0-1];
  • var DaySuffix = 'th';
  • if (DayNr0 == 1) DaySuffix = 'st'
  • else if (DayNr0 == 2) DaySuffix = 'nd'
  • else if (DayNr0 == 3) DaySuffix = 'rd';
  • if (Year0 == Year1)
  • {
  • return DayName0+', '+DayNr0+DaySuffix+' '+MonthName0;
  • }
  • else
  • {
  • return DayName0+', '+DayNr0+DaySuffix+' '+MonthName0+' '+Year0;
  • }
  • }
  • }
  • }
  • }
  • function leading2Zero(nr)
  • {
  • if (nr < 10) nr = "0" + nr;
  • return nr;
  • }
function elapsedTimeString(Day0)
	{
	var Days = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
	var Months = new Array('January','February','March','April','May','June','July','August','September','October','November','December');

	var Year0 = Day0.getFullYear();
	var MonthNr0 = Day0.getMonth()+1;
	var DayNr0 = Day0.getDate();
	var Hours0 = Day0.getHours();
	var Minutes0 = Day0.getMinutes();
	var Seconds0 = Day0.getSeconds();
	var TimeStamp0 = Date.UTC(Year0,MonthNr0-1,DayNr0,Hours0,Minutes0,Seconds0);
	
	var Day1 = new Date();
	var Year1 = Day1.getFullYear();
	var MonthNr1 = Day1.getMonth()+1;
	var DayNr1 = Day1.getDate();
	var Hours1 = Day1.getHours();
	var Minutes1 = Day1.getMinutes();
	var Seconds1 = Day1.getSeconds();
	var TimeStamp1 = Date.UTC(Year1,MonthNr1-1,DayNr1,Hours1,Minutes1,Seconds1);
	
	var Ecart = TimeStamp1 - TimeStamp0;
	if (Ecart <= 0)
		{
		return 'today';
		}
	else if (Ecart <= 1000 * 60)
		{
		return Math.round(Ecart / 1000)+'s ago';
		}
	else if (Ecart <= 1000 * 60 * 60)
		{
		return Math.round(Ecart / (1000*60))+'min ago';
		}
	else if ((Ecart <= 1000 * 60 * 60 *24) && (DayNr1 == DayNr0))
		{
		ElapsedHours = Math.round(Ecart / (1000*60*60));
		if (ElapsedHours == 1)
			{
			return '1 hour ago';
			}
		else
			{
			return ElapsedHours+'hours ago';
			}
		}
	else
		{
		var HoursOP = Hours0;
		var ampmOP = "am";
		if (HoursOP == 0) HoursOP = 12;
		if (HoursOP > 11)
			ampmOP = "pm";
		if (HoursOP > 12)
			HoursOP -= 12;
		HoursOP = leading2Zero(HoursOP);
		var MinutesOP = leading2Zero(Minutes0);
		
		if (Ecart <= (1000 * 60 * 60 * 24))
			{
			return 'yesterday at ' + HoursOP + ':' + MinutesOP + ' ' + ampmOP;
			}
		else
			{
			var DayName0 = Days[Day0.getDay()];
			if (Ecart <= (1000 * 60 * 60 * 24 * 7))
				{
				return DayName0+' at ' + HoursOP + ':' + MinutesOP + ' ' + ampmOP;
				}
			else
				{
				var MonthName0 = Months[MonthNr0-1];
				var DaySuffix = 'th';
				if (DayNr0 == 1) DaySuffix = 'st'
				else if (DayNr0 == 2) DaySuffix = 'nd'
				else if (DayNr0 == 3) DaySuffix = 'rd';
					
				if (Year0 == Year1)
					{
					return DayName0+', '+DayNr0+DaySuffix+' '+MonthName0;
					}
				else
					{
					return DayName0+', '+DayNr0+DaySuffix+' '+MonthName0+' '+Year0;
					}
				}
			}
		}
	}

function leading2Zero(nr)
	{
	if (nr < 10) nr = "0" + nr;
	return nr;
	}

 Conclusion

Créé pour les besoins des profils LiFE-Line sur www.life2front.com


 Historique

09 juillet 2007 18:35:06 :
correction d'orthographe

 Sources du même auteur

CALCULER L'ARRONDI D'UN PRIX ET LE METTRE EN FORME POUR L'AF...
ALTERNATIVE CONVIVIALE AUX REDIRECTIONS SI FRAMES ABSENTS (V...
PETITE ASTUCE POUR DES TEXTAREA ENVAHISSANTS...
BARRE DE DÉFILEMENT (SCROLLBAR) QUI CHANGE DE COULEUR AU SUR...

 Sources de la même categorie

Source avec Zip CALENDRIER ANNUEL UNIVERSEL AVEC SAINTS DU CALENDRIER ET FÊT... par 007Julien
OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE par hugolegrand
SAINT DU JOUR par tefa24600
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
COMPTE À REBOURS POUR ÉVÉNEMENTS À RÉPÉTITION par CSIBern

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CALCULATRICE HEURE par m22001111
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
Source avec Zip AFFICHAGE DE L'HEURE ET DU FUSEAU HORAIRE (TIMEZONE) SUR LA ... par navylav2
Source avec Zip Source avec une capture FARMVILLE - HEURE ET COMBO LIST IMAGES par ym_trainz
Source avec Zip Source avec une capture HORLOGE TRIPLE AFFICHAGE AU FORMAT AM/PM/24H/DST par sofiane1234

Commentaires et avis

Commentaire de Magius le 09/07/2007 16:26:52

Mars?  c'est "March" en anglais, et c'est "July", non "Jully".
Et si nous allons dans les petits détails,
"return Math.round(Ecart / (1000*60))+'mn ago';"  mn devrait min

Commentaire de olid le 09/07/2007 18:37:12

Oups, effectivement, je suis une grosse quiche en anglais... Merci pour tes remarques ;o) .oO(voilà une bonne raison de partager ses sources)

Commentaire de Magius le 09/07/2007 18:56:13

de rien, grosse quiche lol :-)

Commentaire de DomJ le 10/07/2007 01:58:36

Salut
#  {
# return ElapsedHours+'hours ago';
# }
Ça veut dire que si tu transformes en
#  {
# return 'Il y a '+ElapsedHours+'heures';
# }
Ce sera simplement en français?
Note qu'il faut modifier toutes les autres places, la mienne était  un exemple.
mais pourquoi as-tu mis ce script en anglais?

Commentaire de olid le 10/07/2007 18:52:15

Domj, oui... Fait attention au reste pour les vieilles dates.

Il me semblait utile de partager la version anglaise où les dates et heures sont affichées avec des caractéristiques propres à cette langue ; comme l'heure sur 12 heures avec les AM/PM, et le suffixe du jour du mois.

Commentaire de dzik le 21/07/2007 18:27:11

j ai une page perso sur laquelle j ai pris l habitude d inscrire la date de mise a jour...

je t avoue que j ai eu un peu de mal a trouver comment je pourrais utiliser ce code pr rendre l'information plus sympatique. Donc si d autres on le meme probleme:

la date actuelle peut etre donc etre obtenue en ecrivant sur une page dummy.html:

  <script type="text/javascript">document.write(''+new Date());</script>

et cette chaine peut etre reutilisee par le script via:

  <script type="text/javascript">document.write(elapsedTimeString(new Date(Date.parse('string_date'))))</script>

voila pr le complement d'information

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

fonction qui gere le timezone et l'heure d'été heure hiver [ par Phymo2 ] J'ai une fonction qui gere le timezone mais elle ne me donne le decalage horaire que depuis le GMT.Hors avec l'heure d'été , je suis en GMT + 1 mais e Caclul sur les dates [ par lluciano ] Bonjour, je souhaite calculer une date résultante de l'ajout d'une durée (en nbre de jours) à une date exemple : Date de début : 29/03/2003 durée : 5j coherence de 2 dates [ par gaga38 ] salut à tous, j'ai un probleme, je fais saisir à l'utilisateur 2 dates, une dates de debut et une de fin avec en tout 6 select --2 pour les annees (u Verif d'une date et d'une heure [ par Sinse ] Salut! Voila j'ai un truc plutot bizarre qui se passe : j'ai une procedure de verification de date qui marche correctement, dans la meme function je v Une page differente de tel heure à tel heure [ par lavren ] Bonjour, j'ai trovué un script qui permet d'avoir une apge differente pour chaque jour mais jaimerai savoir si on peut faire de meme avec une heure pr déclancher un script à un heure donnée [ par naq2 ] Je soihaiterai déclancher un script (un fonction) à une heure donnée...... et j'aimerai votre aide à ce sujet!En vous remerciant.Pierre. Vérifier le champs "heure" d'un formulaire [ par bcsh ] Bonjour à tous !J'ai besoin d'aide, car je cherche le moyen de controler par javascript si un champ dans lequel il faut insérer une certaine heure res Ecrire l'heure dans une textarea [ par c0nquer ] ::.. SqualL Pow4 ..:: www.SqualLv3x.fr.st &lt;- My siteBonjour a tous , je voudrais savoir si il est possible de mettre l'heure en temps réel dans une Ouvrir un fichier à une heure précise [ par gregolv ] Bonjour,je souhaiterais savoir comment en javascript ouvrir un fichier html à une heure précise.Ex : ouvrir toto.html quand il est 17h15.Merci calcul d'un nombre de jours entre deux dates [ par borisV ] Bonjour, je cherche à calculer (et afficher...) un nombre de jours en tapant une date d'arrivée et une date de départ.En fait, il faudrait peut-être s


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,315 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales