Skip to content

Instantly share code, notes, and snippets.

@jastisriradheshyam
Created October 31, 2018 12:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jastisriradheshyam/10fdec4ecb9a0cb775fcdbb0d33fd40b to your computer and use it in GitHub Desktop.
Save jastisriradheshyam/10fdec4ecb9a0cb775fcdbb0d33fd40b to your computer and use it in GitHub Desktop.
date difference js
// Reference - https://www.w3resource.com/javascript-exercises/javascript-date-exercise-8.php
var date_diff_inseconds = function (date1, date2) {
let dt1 = new Date(date1);
let dt2 = new Date(date2);
return Math.floor((Date.UTC(dt2.getFullYear(), dt2.getMonth(), dt2.getDate(), dt2.getHours(), dt2.getMinutes(), dt2.getSeconds()) - Date.UTC(dt1.getFullYear(), dt1.getMonth(), dt1.getDate(), dt1.getHours(), dt1.getMinutes(), dt1.getSeconds())) / (1000));
};
var date_diff_inminutes = function (date1, date2) {
let dt1 = new Date(date1);
let dt2 = new Date(date2);
return Math.floor((Date.UTC(dt2.getFullYear(), dt2.getMonth(), dt2.getDate(), dt2.getHours(), dt2.getMinutes()) - Date.UTC(dt1.getFullYear(), dt1.getMonth(), dt1.getDate(), dt1.getHours(), dt1.getMinutes())) / (1000 * 60));
};
var date_diff_inhours = function (date1, date2) {
let dth1 = new Date(date1);
let dth2 = new Date(date2);
return Math.floor((Date.UTC(dth2.getFullYear(), dth2.getMonth(), dth2.getDate(), dth2.getHours()) - Date.UTC(dth1.getFullYear(), dth1.getMonth(), dth1.getDate(), dth1.getHours())) / (1000 * 60 * 60));
};
var date_diff_indays = function (date1, date2) {
let dt1 = new Date(date1);
let dt2 = new Date(date2);
return Math.floor((Date.UTC(dt2.getFullYear(), dt2.getMonth(), dt2.getDate()) - Date.UTC(dt1.getFullYear(), dt1.getMonth(), dt1.getDate())) / (1000 * 60 * 60 * 24));
};
@jastisriradheshyam
Copy link
Author

jastisriradheshyam commented Feb 22, 2019

Has better readability

const _MS_PER_DAY = 1000 * 60 * 60 * 24;

// a and b are javascript Date objects
function dateDiffInDays(a, b) {
  // Discard the time and time-zone information.
  const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
  const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());

  return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

Reference:
[1]: Get difference between 2 dates in JavaScript? - Stack Overflow

@jastisriradheshyam
Copy link
Author

jastisriradheshyam commented Feb 22, 2019

var d = new Date();
console.log(d.toString())
var curr = function(d) {

let year = d.getFullYear();
let month = d.getMonth();
let date = d.getDate();
let hour = d.getHours();
let min = d.getMinutes();
var sec = d.getSeconds();
var mill = d.getMilliseconds();
console.log(year,month,date,hour,min,sec,mill)
return Date.UTC(year,month,date,hour,min,sec,mill)

}

var IST = function(d) {

let year = d.toLocaleString('en-US', {year:"numeric", timeZone: 'Asia/Kolkata'});
let month = d.toLocaleString('en-US', {month:"2-digit", timeZone: 'Asia/Kolkata'});
let date = d.toLocaleString('en-US', {day:"2-digit", timeZone: 'Asia/Kolkata'});
let hour = d.toLocaleString('en-US', {hour:"numeric",hour12:false, timeZone: 'Asia/Kolkata'});
let min = d.toLocaleString('en-US', {minute:"numeric", timeZone: 'Asia/Kolkata'});
var sec = d.toLocaleString('en-US', {second:"numeric", timeZone: 'Asia/Kolkata'});
var mill = d.getMilliseconds();
console.log(year,month,date,hour,min,sec,mill)
return Date.UTC(year,month-1,date,hour,min,sec,mill)

}
// curr(d)
console.log(d.getTime(),new Date(IST(d)).toString(),IST(d))
console.log("curr",d.getTime(),new Date(curr(d)).toString(),curr(d))
console.log(new Date(IST(d)) - new Date(curr(d)))
// 19800000

console.log(new Date("02/20/2019").toString())

let c = new Date("02/20/2019");

console.log(c.toString())
console.log(new Date(c.getTime() + diff).toLocaleString({timeZone: 'Asia/Kolkata'}))

@jastisriradheshyam
Copy link
Author

jastisriradheshyam commented Feb 25, 2019

var getDateInLocalTime = function (date, timeZone) {
    var currentDate = new Date(new Date.setMilliseconds(0));
    var requiredTimeZoneDate = new Date(currentDate.toLocaleString("en-US", {
        timeZone: timeZone
    })).getTime(); // current time in specified time zone
    var currentTimeZoneDate = currentDate.getTime(); //My current time
    var timeZoneDifference = requiredTimeZoneDate - currentTimeZoneDate;
    var requiredDate = new Date(date);
    var requiredTime = requiredDate.getTime() - timeZoneDifference
    return requiredTime
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment