J'essaie de planifier un événement le 02-mai-2021 13h30 qui tombe à l'heure avancée du centre et je le programme aujourd'hui 25-FEV-2021, heure normale du centre. mais l'heure 13h30 passe à 12h30.

Existe-t-il un moyen d'empêcher ce changement? Mon application est en Js angulaire et utilise le sélecteur de date / heure Bootstrap-angular

1
Annamalai 25 févr. 2021 à 19:50

1 réponse

Meilleure réponse

Vous pouvez utiliser le fuseau horaire du moment https://github.com/moment/moment-timezone vous pouvez ajouter le décalage à votre date en fonction du fuseau horaire, ici +01: 00 en France.

<script type="text/javascript" src="./moment-timezone-with-data.js"></script>

let offsetFrance = moment().tz("Europe/Paris").format('Z'); //+01:00
let eventWithOffset = moment().format('YYYY-MM-DDTHH:mm:ss[' + offsetFrance + ']');
let eventGmt = moment.tz(eventWithOffset, 'Europe/Paris').toISOString();

Sinon, essayez avec moment dans l'application angularjs https://raw.githubusercontent.com/gdi2290/angular- momentjs / master / angular-momentjs.js

Chargez le script

<script type="text/javascript" src="./angular-momentjs.js"></script>

Injecter la dépendance dans votre module d'application et votre contrôleur

var app = angular.module('myApp', ['angular-momentjs']);

app.controller('myCtrl', function($scope, $moment) {
  let now = $moment().toISOString();
  let myEvent = $moment('02/05/2021 13:30', 'DD/MM/YYYY HH:mm').toISOString();

  if($moment(now).isAfter(myEvent)) alert('Time to event');
  else alert('ok');
});
1
Nevada Stone 26 févr. 2021 à 01:30