Ich versuche, eine Erinnerung für Stunden zu erstellen Ich verwende MomentsJs, var subtract = moment.duration (b - l) .hours();
Dann zum Zeitpunkt der Konvertierung bekomme ich den Unterschied zwischen der aktuellen und festen Zeit, jetzt das Problem, das ich Wenn die Uhr auf den nächsten Tag geht, berücksichtigt die Konvertierung nicht, dass es von 22:00 bis 02:00 Uhr am anderen Tag kommt. Denken Sie daran, 24 Stunden zu wiederholen, aber einige werden nicht den richtigen Unterschied finden, gibt es einen effektiveren Weg, die Berechnung durchzuführen?Moments Wie bekomme ich den Unterschied zwischen Stunden
Meine Lösung war die twix Bibliothek zu implementieren, die mir einen Unterschied in Stunden mit der folgenden Codezeile
var subtraction = moment(b).twix(l).length("hours");
ich meinen Code verlassen gibt.
timer4: function(timer){
var t = Meteor.users.find({ id: this.userId}).fetch();
for (var k = 0; k < t.length; k++) {
var tzone = t[k].profile.timezone;
var data = AddMed.find({ userId: t[k]._id}).fetch();
for (var i = 0; i < data.length; i++) {
var TimerD = momentT.tz(timer,tzone).format('HH:mm');
var h = data[i].time;
var resultado = data[i].createdAt
var b = moment(TimerD,'HH:mm');
var asd = momentT.tz(data[i].createdAt,tzone).format('HH:mm');
var l = moment(asd,'HH:mm');
console.log('creadoConvertido:', l)
console.log('timerServerConvertido:', b)
var resta = moment.duration(b - l).hours();
resta = Math.abs(resta);
var hSystem = momentT.tz(timer, tzone).format('HH:mm');
var fecha = moment(new Date).format('YYYY-MM-DD');
if (fecha == data[i].date && data[i].time == hSystem) {
Meteor.call('AddCheckInit', data[i]._id,t[k]._id,k, function(error) {
if (error) {
console.log('error', error);
}
});
}
if (resta == data[i].recordatorio && data[i].check == 'true'){
console.log('entre remminder')
var SendP = {
name: data[i].NameMed,
detalles: data[i].detalles,
date: data[i].date,
time: data[i].time,
recordatorio: data[i].recordatorio,
idioma: t[k].profile.idioma,
userid: t[k]._id,
id: data[i]._id,
type: 'medicinas',
createdAt: data[i].createdAt,
k:i,
resta: resta
}
/// send push notifications
Meteor.call("serverNotification",SendP);
Meteor.call('updateCreated', SendP,k, function(error, success) {
if (error) {
console.log('error', error);
}
if (success) {
console.log("Cambios Realizandos Existosamente")
console.log('succes',success.createdAt)
}
});
}
else {
console.log('contando. medicinas');
}
console.log('/****end logs*****/');
}
/*****************end************************/
}
}
//**** My meteor Methodos ***********/
updateCreated: function(SendP,k){
var t = Meteor.users.find({ id: this.userId}).fetch();
var tzone = t[k].profile.timezone;
console.log('mi zona', tzone)
var createdAt = momentT.tz(new Date(), tzone).format();
console.log('creado el',createdAt);
AddMed.update({
'_id': SendP.id
}, {
'$set': {
'createdAt': createdAt,
}
});
return createdAt;
},
AddCheckInit: function(id,userId,k){
console.log('AddCheckInit',id,'USER',userId);
var t = Meteor.users.find({ id: this.userId}).fetch();
var tzone = t[k].profile.timezone;
console.log('mi zona', tzone)
var createdAt = momentT.tz(new Date(), tzone).format();
console.log('creado el',createdAt);
AddMed.update({
'_id': id
}, {
'$set': {
'check': 'true',
'createdAt': createdAt,
}
});
} ,
Bitte lesen Sie a [MCVE] über die Verwendung beruhte. – evolutionxbox