Recherche effectué dans :

Filtre actif, cliquez pour en enlever un tag :

Cliquez sur un tag pour affiner votre recherche :

Résultat de la recherche (4 notes) :

Journal du mardi 17 septembre 2024 à 18:48 #WebDev, #javascript, #datetime

Suite de 2024-09-17_1707.

Mon but est toujours de convertir une donnée datetime UTC vers la timezone du navigateur.

L'équivalent du code :

return Temporal.PlainDateTime
	.from(value)
	.toZonedDateTime('UTC')
	.withTimeZone(
		Intl.DateTimeFormat().resolvedOptions().timeZone
	)
	.toString({
		offset: 'never',
		timeZoneName: 'never'
	})
	.replace('T', ' ');

avec date-fns est :

import { format } from 'date-fns';
import { fromZonedTime, toZonedTime } from 'date-fns-tz';

return format(
	toZonedTime(
		fromZonedTime(value, "UTC"),
		Intl.DateTimeFormat().resolvedOptions().timeZone
	),
	"yyyy-mm-dd HH:MM:SS"
);

Ce qui m'évite de devoir utiliser .replace('T', ' ').

Par contre, j'aurais bien aimé pouvoir utiliser une syntax du style :

return (
	fromZonedTime(value, "UTC")
	.toZonedTime(Intl.DateTimeFormat().resolvedOptions().timeZone)
	.format("yyyy-mm-dd HH:MM:SS")
);

ce qui ne semble pas possible avec dns-fns.

Luxon semble proposer une syntax plus agréable :

import { DateTime } from 'luxon';

return DateTime
  .fromISO(value, { zone: 'UTC' })
  .setZone(Intl.DateTimeFormat().resolvedOptions().timeZone)
  .toFormat('yyyy-MM-dd HH:mm:ss');

Journal du mardi 17 septembre 2024 à 17:07 #WebDev, #javascript, #datetime

Ici, dans le projet gibbon-replay, j'ai utilisé la librairie Temporal.

import { Temporal } from 'temporal-polyfill';

return Temporal.PlainDateTime
	.from(value)
	.toZonedDateTime('UTC')
	.withTimeZone(
		Intl.DateTimeFormat().resolvedOptions().timeZone
	)
	.toString({
		offset: 'never',
		timeZoneName: 'never'
	})
	.replace('T', ' ');

Le but est de convertir une donnée datetime UTC vers la timezone du navigateur.

Cependant, j'ai été déçu de constater qu'il n'existe pas de fonction de formatage intégrée similaire à celle de date-fns pour formater une date/heure.

Je trouve dommage de devoir utiliser .replace('T', ' '); pour supprimer le caractère T dans la date formatée.

Journal du lundi 26 août 2024 à 21:59 #OnMaPartagé, #javascript, #datetime, #coding

Alexandre m'a partagé JS Dates Are About to Be Fixed

Many people think that by working with UTC or communicating dates in ISO format, they are safe; however, this is not correct, as information is still lost.

Oui ! J'ai souvent fait l'erreur !

La librairie : Temporal

Temporal (Javascript library) #library, #datetime

https://github.com/fullcalendar/temporal-polyfill

A lightweight polyfill for Temporal, successor to the JavaScript Date object.

Dernière page.