2017-10-11 11 views
0

Cela pourrait être une question embarrassingly facile, mais je suis nouveau à Moment.js et fullcalendar.Comment faire pour modifier le temps d'affichage de fullcalendar de plusieurs minutes

L'objectif: Get fullcalendar pour fonctionner sur un moment/DateTime qui se trouve à quelques minutes décalage de temps d'ordinateur local.

La raison: Nous voulons synchroniser l'heure d'affichage et nowIndicator avec les horloges anciennes dans un bâtiment, par opposition au temps du bureau.

Essayé jusqu'à présent:

// Get current offset: 
var localOffset = moment().utcOffset(); 

// Shift by 7 minutes for illustration 
localOffset -= 7; 

// Set new offset for moment 
moment().utcOffset(localOffset); 

alert(moment().utcOffset()); 

A partir de maintenant, il imprime de nouveau l'UTC décalage d'origine et la nowIndicator correspond à mon horloge système. C'est en utilisant Moment.js 2.19.0.

Merci de votre visite.

Répondre

0

ADyson's answer l'idée fausse au sujet effacé un objet moment et son champ d'application.

Pour répondre au problème initial de décalage du temps de FullCalendar d'un montant arbitraire, utilisez le « maintenant » option lors de l'initialisation:

// Get current time as moment object and add 7 minute offset 
var shiftedTime = moment().add(7, 'minutes'); 

// Set 'now' option in calendar initialization to new moment object 
$('#calendar').fullCalendar({ 
    // put your options and callbacks here 
    now: shiftedTime, 
    defaultView: 'agendaDay', 
    nowIndicator: true 
}); 

L'affichage du calendrier et l'indicateur maintenant sera décalé 7 minutes par rapport à heure de la machine locale.

1

moment().utcOffset() crée un nouveau moment avec le décalage par défaut. Cela n'a rien à voir avec l'objet sur lequel vous avez précédemment défini un décalage. momentJS fonctionne en utilisant des objets individuels qui sont instanciés en utilisant le constructeur moment(). Ce n'est pas une chose statique ou globale.

Ce que vous devez faire est de travailler avec l'objet moment que vous définissez le décalage sur:

var offsetMoment = moment(); 
offsetMoment.utcOffset(localOffset); 
alert(offsetMoment.utcOffset());