Comment vérifier le décalage horaire entre deux zones de texte en Javascript?Vérifiez le décalage horaire en Javascript
Répondre
Improviser. objets Soustraire JavaScript Date
pour obtenir leur différence:
// use a constant date (e.g. 2000-01-01) and the desired time to initialize two dates
var date1 = new Date(2000, 0, 1, 9, 0); // 9:00 AM
var date2 = new Date(2000, 0, 1, 17, 0); // 5:00 PM
// the following is to handle cases where the times are on the opposite side of
// midnight e.g. when you want to get the difference between 9:00 PM and 5:00 AM
if (date2 < date1) {
date2.setDate(date2.getDate() + 1);
}
var diff = date2 - date1;
// 28800000 milliseconds (8 hours)
Vous pouvez ensuite convertir millisecondes à l'heure, minute et secondes comme ceci:
var msec = diff;
var hh = Math.floor(msec/1000/60/60);
msec -= hh * 1000 * 60 * 60;
var mm = Math.floor(msec/1000/60);
msec -= mm * 1000 * 60;
var ss = Math.floor(msec/1000);
msec -= ss * 1000;
// diff = 28800000 => hh = 8, mm = 0, ss = 0, msec = 0
Vous pouvez convertir le temps en tant que chaîne de Format de 24 heures comme celui-ci:
function parseTime(s) {
var part = s.match(/(\d+):(\d+)(?:)?(am|pm)?/i);
var hh = parseInt(part[1], 10);
var mm = parseInt(part[2], 10);
var ap = part[3] ? part[3].toUpperCase() : null;
if (ap === "AM") {
if (hh == 12) {
hh = 0;
}
}
if (ap === "PM") {
if (hh != 12) {
hh += 12;
}
}
return { hh: hh, mm: mm };
}
parseTime("12:00 AM"); // {hh: 0, mm: 0}
parseTime("12:00 PM"); // {hh: 12, mm: 0}
parseTime("01:00 PM"); // {hh: 13, mm: 0}
parseTime("23:00"); // {hh: 23, mm: 0}
Je ne sais jamais si les dates dans ce format seront analysées en d/m/y ou en m/d/y. Les formats officiels acceptés sont ici (quoi que Date.parse() accepte est valide), https://developer.mozilla.org/fr/JavaScript/Reference/Global_Objects/Date/parse –
quel est le +1 d'ici? Quelle partie de la date est cette incrémentation? –
Je sais que c'est ancien, mais où dans tout ce charabia est-ce que quelque chose se lit à partir des champs de formulaire? Tout ce que je vois est un exemple de code codé en dur. Comment puis-je faire la différence entre le nombre de fois que mon utilisateur a tapé dans mes deux 'input type =" text "' plutôt que entre 9h00 et 17h00? – Martha
Une bonne solution est avaliable à
http://blogs.digitss.com/javascript/calculate-datetime-difference-simple-javascript-code-snippet/
donne la sortie dans le format de votre choix differnece de
jours: heures: minutes: secondes.
Une version légèrement modifiée de ce code est illustré ci-dessous
var vdaysdiff; // difference of the dates
var vhourDiff;
var vmindiff;
var vsecdiff;
vdaysdiff = Math.floor(diff/1000/60/60/24); // in days
diff -= vdaysdiff*1000*60*60*24;
vhourDiff = Math.floor(diff/1000/60/60); // in hours
diff -= vhourDiff*1000*60*60;
vmindiff = Math.floor(diff/1000/60); // in minutes
diff -= vmindiff*1000*60;
vsecdiff= Math.floor(diff/1000); // in seconds
//Text formatting
var hourtext = '00';
if (hourDiff > 0){ hourtext = String(hourDiff);}
if (hourtext.length == 1){hourtext = '0' + hourtext};
var mintext = '00';
if (mindiff > 0){ mintext = String(mindiff);}
if (mintext.length == 1){mintext = '0' + mintext};
//shows output as HH:MM (i needed shorter duration)
duration.value= hourtext + ':' + mintext;
Voici mon interprétation ....
function get_time_difference(earlierDate, laterDate)
{
var oDiff = new Object();
// Calculate Differences
// ------------------------------------------------------------------- //
var nTotalDiff = laterDate.getTime() - earlierDate.getTime();
oDiff.days = Math.floor(nTotalDiff/1000/60/60/24);
nTotalDiff -= oDiff.days * 1000 * 60 * 60 * 24;
oDiff.hours = Math.floor(nTotalDiff/1000/60/60);
nTotalDiff -= oDiff.hours * 1000 * 60 * 60;
oDiff.minutes = Math.floor(nTotalDiff/1000/60);
nTotalDiff -= oDiff.minutes * 1000 * 60;
oDiff.seconds = Math.floor(nTotalDiff/1000);
// ------------------------------------------------------------------- //
// Format Duration
// ------------------------------------------------------------------- //
// Format Hours
var hourtext = '00';
if (oDiff.days > 0){ hourtext = String(oDiff.days);}
if (hourtext.length == 1){hourtext = '0' + hourtext};
// Format Minutes
var mintext = '00';
if (oDiff.minutes > 0){ mintext = String(oDiff.minutes);}
if (mintext.length == 1) { mintext = '0' + mintext };
// Format Seconds
var sectext = '00';
if (oDiff.seconds > 0) { sectext = String(oDiff.seconds); }
if (sectext.length == 1) { sectext = '0' + sectext };
// Set Duration
var sDuration = hourtext + ':' + mintext + ':' + sectext;
oDiff.duration = sDuration;
// ------------------------------------------------------------------- //
return oDiff;
}
Cette fonction retourne une chaîne avec la différence d'une chaîne datetime et le datetime actuel.
function get_time_diff(datetime)
{
var datetime = typeof datetime !== 'undefined' ? datetime : "2014-01-01 01:02:03.123456";
var datetime = new Date(datetime).getTime();
var now = new Date().getTime();
if(isNaN(datetime))
{
return "";
}
console.log(datetime + " " + now);
if (datetime < now) {
var milisec_diff = now - datetime;
}else{
var milisec_diff = datetime - now;
}
var days = Math.floor(milisec_diff/1000/60/(60 * 24));
var date_diff = new Date(milisec_diff);
return days + " Days "+ date_diff.getHours() + " Hours " + date_diff.getMinutes() + " Minutes " + date_diff.getSeconds() + " Seconds";
}
Testé dans la (appuyez sur F12) Google Chrome console
get_time_diff()
1388534523123 1375877555722
"146 Days 12 Hours 49 Minutes 27 Seconds"
Comment puis-je obtenir la différence de temps entre la date = "2016/03/01 11:00" à ce jour = "2016/03/06 11:00". et aussi comment formater la date pour la fonction ci-dessus –
http://momentjs.com/ résoudra vos problèmes lorsque vous travaillez avec l'heure et les dates en javascript –
http://momentjs.com/docs/#/displaying/difference/ vous devez calculer la différence entre les objets moment –
Lorsque j'ai essayé la différence entre timbre même temps, il a donné 0 Jours 5 Heures 30 Minutes
afin d'obtenir exactement j'ai soustrait 5 heures et 30 min
function get_time_diff(datetime)
{
var datetime = typeof datetime !== 'undefined' ? datetime : "2014-01-01 01:02:03.123456";
var datetime = new Date(datetime).getTime();
var now = new Date().getTime();
if(isNaN(datetime))
{
return "";
}
console.log(datetime + " " + now);
if (datetime < now) {
var milisec_diff = now - datetime;
}else{
var milisec_diff = datetime - now;
}
var days = Math.floor(milisec_diff/1000/60/(60 * 24));
var date_diff = new Date(milisec_diff);
return days + "d "+ (date_diff.getHours() - 5) + "h " + (date_diff.getMinutes() - 30) + "m";
}
Ceci est une addition à dmd733 La réponse. J'ai corrigé le bug avec la durée du jour (enfin j'espère l'avoir fait, je n'ai pas pu tester tous les cas).
J'ai aussi rapidement ajouté une propriété String au résultat qui contient le temps passé (désolé pour les mauvaises ifs imbriquées !!). Par exemple, si utilisé pour l'interface utilisateur et indiquant quand quelque chose a été mis à jour (comme un flux RSS). Un peu de place, mais agréable à avoir:
function getTimeDiffAndPrettyText(oDatePublished) {
var oResult = {};
var oToday = new Date();
var nDiff = oToday.getTime() - oDatePublished.getTime();
// Get diff in days
oResult.days = Math.floor(nDiff/1000/60/60/24);
nDiff -= oResult.days * 1000 * 60 * 60 * 24;
// Get diff in hours
oResult.hours = Math.floor(nDiff/1000/60/60);
nDiff -= oResult.hours * 1000 * 60 * 60;
// Get diff in minutes
oResult.minutes = Math.floor(nDiff/1000/60);
nDiff -= oResult.minutes * 1000 * 60;
// Get diff in seconds
oResult.seconds = Math.floor(nDiff/1000);
// Render the diffs into friendly duration string
// Days
var sDays = '00';
if (oResult.days > 0) {
sDays = String(oResult.days);
}
if (sDays.length === 1) {
sDays = '0' + sDays;
}
// Format Hours
var sHour = '00';
if (oResult.hours > 0) {
sHour = String(oResult.hours);
}
if (sHour.length === 1) {
sHour = '0' + sHour;
}
// Format Minutes
var sMins = '00';
if (oResult.minutes > 0) {
sMins = String(oResult.minutes);
}
if (sMins.length === 1) {
sMins = '0' + sMins;
}
// Format Seconds
var sSecs = '00';
if (oResult.seconds > 0) {
sSecs = String(oResult.seconds);
}
if (sSecs.length === 1) {
sSecs = '0' + sSecs;
}
// Set Duration
var sDuration = sDays + ':' + sHour + ':' + sMins + ':' + sSecs;
oResult.duration = sDuration;
// Set friendly text for printing
if(oResult.days === 0) {
if(oResult.hours === 0) {
if(oResult.minutes === 0) {
var sSecHolder = oResult.seconds > 1 ? 'Seconds' : 'Second';
oResult.friendlyNiceText = oResult.seconds + ' ' + sSecHolder + ' ago';
} else {
var sMinutesHolder = oResult.minutes > 1 ? 'Minutes' : 'Minute';
oResult.friendlyNiceText = oResult.minutes + ' ' + sMinutesHolder + ' ago';
}
} else {
var sHourHolder = oResult.hours > 1 ? 'Hours' : 'Hour';
oResult.friendlyNiceText = oResult.hours + ' ' + sHourHolder + ' ago';
}
} else {
var sDayHolder = oResult.days > 1 ? 'Days' : 'Day';
oResult.friendlyNiceText = oResult.days + ' ' + sDayHolder + ' ago';
}
return oResult;
}
est ici la solution qui a fonctionné pour moi:
var date1 = new Date("08/05/2015 23:41:20");
var date2 = new Date("08/06/2015 02:56:32");
var diff = date2.getTime() - date1.getTime();
var msec = diff;
var hh = Math.floor(msec/1000/60/60);
msec -= hh * 1000 * 60 * 60;
var mm = Math.floor(msec/1000/60);
msec -= mm * 1000 * 60;
var ss = Math.floor(msec/1000);
msec -= ss * 1000;
alert(hh + ":" + mm + ":" + ss);
J'aime faire via Epoch.
var now = new Date();
var future = new Date(now.setMinutes(15));
var futureEpoch = moment(future).unix();
var nowEpoch = moment(now).unix();
var differenceInEpoch = nowEpoch - scheduledEpoch ;
console.log("futureEpoch : " + futureEpoch);
console.log("nowEpoch : " + nowEpoch);
console.log("differenceInEpoch : " + differenceInEpoch);
var diffTime = new Date(0); // The 0 there is the key, which sets the date to the epoch
diffTime.setUTCSeconds(differenceInEpoch);
console.log("new diffTime : " + diffTime);
saisir les valeurs d'entrée après formulaire de soumission
$start_time = $_POST('start_time');
$end_time =$_POST('end_time');
$start = $start_time;
$end = $end_time;
$datetime1 = new DateTime($end);
$datetime2 = new DateTime($start);
//echo $datetime1->format('H:i:s');
$interval = $datetime1->diff($datetime2);
$elapsed = $interval->format('%h:%i');
$time = explode(":",$elapsed);
$hours = $time[0];
$minutes = $time[1];
$tminutes = $minutes + ($hours*60);
la variable tminutes de $ est diff totale en minutes, heures de travail est $ heure
Votre code ne fonctionne pas. – Mistalis
quelle erreur vous faites face, ça fonctionne bien pour moi! –
L'auteur de la question veut savoir comment le faire en js, donc em i. –
Le temps diff dans millisecondes
firstDate.getTime() - secondDate.getTime()
Dans mon cas, je vais stocker l'heure en millisecondes sur le stockage de chrome et essayer de trouver diff en heures plus tard.
function timeDiffInHours(milliseconds){
time_diff = (new Date).getTime() - milliseconds
return parseInt((time_diff/(1000*60*60)) % 24)
}
// This is again sending current time and diff would be 0.
timeDiffInHours((new Date).getTime());
je l'ai fait quelques améliorations pour le compteur de minuterie
//example return : 01:23:02:02
// : 1 Day 01:23:02:02
// : 2 Days 01:23:02:02
function get_timeDifference(strtdatetime) {
var datetime = new Date(strtdatetime).getTime();
var now = new Date().getTime();
if (isNaN(datetime)) {
return "";
}
//console.log(datetime + " " + now);
if (datetime < now) {
var milisec_diff = now - datetime;
} else {
var milisec_diff = datetime - now;
}
var days = Math.floor(milisec_diff/1000/60/(60 * 24));
var date_diff = new Date(milisec_diff);
var msec = milisec_diff;
var hh = Math.floor(msec/1000/60/60);
msec -= hh * 1000 * 60 * 60;
var mm = Math.floor(msec/1000/60);
msec -= mm * 1000 * 60;
var ss = Math.floor(msec/1000);
msec -= ss * 1000
var daylabel = "";
if (days > 0) {
var grammar = " ";
if (days > 1) grammar = "s "
var hrreset = days * 24;
hh = hh - hrreset;
daylabel = days + " Day" + grammar ;
}
// Format Hours
var hourtext = '00';
hourtext = String(hh);
if (hourtext.length == 1) { hourtext = '0' + hourtext };
// Format Minutes
var mintext = '00';
mintext = String(mm);
if (mintext.length == 1) { mintext = '0' + mintext };
// Format Seconds
var sectext = '00';
sectext = String(ss);
if (sectext.length == 1) { sectext = '0' + sectext };
var msectext = '00';
msectext = String(msec);
msectext = msectext.substring(0, 1);
if (msectext.length == 1) { msectext = '0' + msectext };
return daylabel + hourtext + ":" + mintext + ":" + sectext + ":" + msectext;
}
J'utiliser simplement getTime();
et par exemple Date.now()
revenir différence en millisecondes:
//specified date:
var oneDate = new Date("November 02, 2017 06:00:00");
//number of milliseconds since midnight Jan 1 1970 till specified date
var oneDateMiliseconds = oneDate.getTime();
////number of milliseconds since midnight Jan 1 1970 till now
var currentMiliseconds = Date.now();
//return time difference in miliseconds
alert(currentMiliseconds-oneDateMiliseconds);
- 1. Décalage horaire
- 2. Python - générer le décalage horaire
- 3. requête SQL: décalage horaire
- 4. Script Vim: comment récupérer le décalage horaire?
- 5. mise en forme de date php pour le décalage horaire
- 6. .NET Décalage du fuseau horaire par nom de fuseau horaire
- 7. décalage horaire surprenant pour les appels python
- 8. conditions named_scope et décalage de fuseau horaire
- 9. PHP - bizarre décalage de fuseau horaire
- 10. codeigniter obtenir décalage de fuseau horaire
- 11. MYSQL - comment obtenir un décalage horaire?
- 12. décalage horaire UTC pour une datetime
- 13. Comment faire pour obtenir le décalage horaire dans l'iPhone
- 14. sélectionner 10 lignes avec décalage horaire le plus bas sql
- 15. Comment obtenir le décalage UTC actuel (fuseau horaire)?
- 16. Déterminer le décalage de fuseau horaire de l'agent utilisateur sans utiliser javascript?
- 17. Comment convertir le décalage horaire en heures (avec 2 décimales) en Derby?
- 18. Obtenir un décalage de fuseau horaire pour un emplacement donné
- 19. Comment faire pour trouver le décalage horaire entre deux dates en utilisant PHP
- 20. javascript - convertir localtime en fuseau horaire différent
- 21. Numéro de décalage de fuseau horaire dans Objective-c?
- 22. Le décalage GWT TimeZone est-il en arrière?
- 23. Erreur dans le décalage horaire entre le serveur et le système local
- 24. Vérifiez le nom de la fonction en Javascript
- 25. SystemTimeToTzSpecificLocalTime - comment obtenir le décalage et le fuseau horaire de l'utc
- 26. La différence de date inclut le décalage horaire, quel est le problème?
- 27. Vérifiez si Variable dans le tableau javascript
- 28. Autodetect fuseau horaire dans Rails étant donné le décalage UTC et DST
- 29. Conversion de décalage de fuseau horaire en nom convivial en PHP
- 30. Comment obtenir le décalage horaire et le compte DST avec PEAR :: Date?
Quel format est l'utilisateur entre dans la fois? –
S'agit-il de deux zones de texte contenant UNIQUEMENT des valeurs d'heure? Tels que "23h42" ou "08h09"? –
oui, comme la même chose que vous avez dit – Kishh