জাভাস্ক্রিপ্টের দুটি পাঠ্য-বাক্স থেকে আপনি কীভাবে সময়ের পার্থক্যটি পরীক্ষা করবেন?
জাভাস্ক্রিপ্টের দুটি পাঠ্য-বাক্স থেকে আপনি কীভাবে সময়ের পার্থক্যটি পরীক্ষা করবেন?
উত্তর:
উপজ। Dateতাদের পার্থক্য পেতে জাভাস্ক্রিপ্ট অবজেক্টগুলি বিয়োগ করুন :
// 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)
এরপরে আপনি মিলিসেকেন্ডগুলিকে ঘন্টা, মিনিট এবং সেকেন্ডে রূপান্তর করতে পারেন:
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
আপনি সময়টিকে স্ট্রিং হিসাবে 24 ঘন্টা বিন্যাসে রূপান্তর করতে পারেন:
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}
input type="text"বাক্সে টাইপ করেছেন , সকাল 9:00 টা থেকে 5:00 অপরাহ্নের মধ্যে যে সময়ের চেয়েও পার্থক্য পেতে পারি?
এই ফাংশনটি একটি ডেটটাইম স্ট্রিং এবং বর্তমান তারিখের সময় থেকে পার্থক্য সহ একটি স্ট্রিং প্রদান করে।
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";
}
গুগল ক্রোমে পরীক্ষিত console(F12 টিপুন)
get_time_diff()
1388534523123 1375877555722
"146 Days 12 Hours 49 Minutes 27 Seconds"
আমার জন্য কাজ করে এমন সমাধানটি এখানে:
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);
এখানে আমার উপস্থাপনা ....
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;
}
একটি ভাল সমাধান এ উপলব্ধ
http://blogs.digitss.com/javascript/calculate-datetime-difference-simple-javascript-code-snippet/
এর আপনার পছন্দসই পৃথক বিন্যাসে আউটপুট দেয়
দিন: ঘন্টা: মিনিট: সেকেন্ড।
নীচে সেই কোডটির কিছুটা পরিবর্তিত সংস্করণ দেখানো হয়েছে
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;
এটি dmd733 এর সাথে সংযোজন এর উত্তরের । আমি দিনের সময়কালের সাথে বাগটি ঠিক করেছি (ভাল আমি আশা করি যে আমি করেছি, প্রতিটি ক্ষেত্রে পরীক্ষা করতে সক্ষম হইনি)।
আমি খুব দ্রুত ফলাফলের সাথে একটি স্ট্রিং সম্পত্তি যুক্ত করেছি যা সাধারণ সময় কেটে যায় (খারাপ নেস্টেড আইএফএসের জন্য দুঃখিত !!)। উদাহরণস্বরূপ, যদি ইউআই এর জন্য ব্যবহৃত হয় এবং নির্দেশিত হয় যে কখন কিছু আপডেট হয়েছিল (আরএসএস ফিডের মতো)। জায়গা থেকে দূরে কিন্তু ভাল-থেকে:
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;
}
যখন আমি একই সময়ের স্ট্যাম্পের মধ্যে পার্থক্যটি চেষ্টা করেছি তখন এটি 0 দিন 5 ঘন্টা 30 মিনিট দিয়েছে
ঠিক এটি পেতে আমি 5 ঘন্টা এবং 30 মিনিট বিয়োগ করেছি
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";
}
সময়টি মিলি সেকেন্ডে পৃথক
firstDate.getTime() - secondDate.getTime()
আমি টাইমার কাউন্টারের জন্য কিছু বর্ধন করেছি
//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;
}
এটা চেষ্টা কর :
function SumHours() {
var smon = document.getElementById('sMon').value ;
var fmon = document.getElementById('fMon').value ;
var diff = 0 ;
if (smon && fmon) {
smon = ConvertToSeconds(smon);
fmon = ConvertToSeconds(fmon);
diff = Math.abs( fmon - smon ) ;
console.log( 'time difference is : ' + secondsTohhmmss(diff) );
}
function ConvertToSeconds(time) {
var splitTime = time.split(":");
return splitTime[0] * 3600 + splitTime[1] * 60;
}
function secondsTohhmmss(secs) {
var hours = parseInt(secs / 3600);
var seconds = parseInt(secs % 3600);
var minutes = parseInt(seconds / 60) ;
return hours + "hours : " + minutes + "minutes ";
}
}
<td>
<input type="time" class="dataInput" id="sMon" onchange="SumHours();" />
</td>
<td>
<input type="time" class="dataInputt" id="fMon" onchange="SumHours();"/>
</td>
আমি মিলিসেকেন্ডে পার্থক্য ফিরিয়ে দিতে ন্যায়সঙ্গত getTime();এবং উদাহরণ ব্যবহার করব Date.now():
//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);
You can Get Two Time Different with this function.
/**
* Get Two Time Different
* @param join
* @param lastSeen
* @param now
* @returns {string}
*/
function getTimeDiff( join, lastSeen, now = false)
{
let t1 = new Date(join).getTime(), t2 = new Date(lastSeen).getTime(), milliseconds =0, time ='';
if (now) t2 = Date.now();
if( isNaN(t1) || isNaN(t2) ) return '';
if (t1 < t2) milliseconds = t2 - t1; else milliseconds = t1 - t2;
var days = Math.floor(milliseconds / 1000 / 60 / (60 * 24));
var date_diff = new Date( milliseconds );
if (days > 0) time += days + 'd ';
if (date_diff.getHours() > 0) time += date_diff.getHours() + 'h ';
if (date_diff.getMinutes() > 0) time += date_diff.getMinutes() + 'm ';
if (date_diff.getSeconds() > 0) time += date_diff.getSeconds() + 's ';
return time;
}
console.log(getTimeDiff(1578852606608, 1579530945513));
আমি এপোকের মাধ্যমে এটি করতে পছন্দ করি।
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);
আমার ক্ষেত্রে, আমি ক্রোম স্টোরেজে মিলি সেকেন্ডে সময় সঞ্চয় করব এবং কয়েক ঘন্টা পরে আলাদা করার চেষ্টা করব।
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());
আপনি এই উদ্দেশ্যে মুহুর্তের জেএস ব্যবহার করতে পারেন। 'এখন থেকে ()' মুহুর্তগুলি আপনাকে বর্তমান সময়ের চেয়ে যে কোনও সময়ের পার্থক্য দেবে।
var m1 = any date time on moment format;
console.log(m1.fromNow());
var moment = require("moment");
var momentDurationFormatSetup = require("moment-duration-format")
var now = "2015-07-16T16:33:39.113Z";
var then = "2015-06-16T22:33:39.113Z";
var ms = moment(now,"YYYY-MM-DD'T'HH:mm:ss:SSSZ").diff(moment(then,"YYYY-MM-DD'T'HH:mm:ss:SSSZ"));
var d = moment.duration(ms);
var s = d.format("dd:hh:mm:ss");
console.log(s);
পিএইচপি-তে ফর্ম জমা দেওয়ার পরে ইনপুট মানগুলি ধরুন
$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);
ভেরিয়েবল $ টিনিমুটগুলি মিনিটে মোট পৃথক, কাজের সময় hour ঘন্টা। এই কোডটি পিএইচপি করার জন্য এই যুক্তিটি ব্যবহার করুন এবং এই কোডটিকে জেএসে রূপান্তর করুন