Date manipulation: Difference between revisions

(Nimrod -> Nim)
Line 818:
 
<lang JavaScript>function add12hours(dateString) {
}
// Get the parts of the date string
var parts = dateString.split(/\s+/);,
var date = parts[1];,
var month = parts[0];,
var year = parts[2];,
var time = parts[3];
 
var hr = Number(time.split(':')[0]);,
var min = Number(time.split(':')[1].replace(/\D/g,''));,
var ampm = time && time.match(/[a-z]+$/i)[0];,
var zone = parts[4].toUpperCase();
 
// Get the parts of the date string
var parts = dateString.split(/\s+/);
var date = parts[1];
var month = parts[0];
var year = parts[2];
var time = parts[3];
var ampm = time && time.match(/[a-z]+$/i)[0];
var hr = Number(time.split(':')[0]);
var min = Number(time.split(':')[1].replace(/\D/g,''));
var zone = parts[4].toUpperCase();
var months = ['January','February','March','April','May','June',
'July','August','September','October','November','December'];
var zones = {'EST': 300, 'AEST': -600}; // Minutes to add to zone time to get UTC
 
// Convert month name to number, zero indexed. Return if invalid month
month = months.indexOf(month);
// Could use indexOf but not supported widely
if (month === -1) { return; }
for (var i=0, iLen=months.length; i<iLen; i++) {
if (months[i] == month) {
month = i;
}
}
if (typeof month != 'number') return; // Invalid month name provided
 
// ConvertAdd 12 hours toas specified. Add another 12 if pm for 24hr time
ifhr += (ampm && ampm.toLowerCase() === 'pm') {? 24 : 12
hr += 12;
}
 
// Add 12 hours to hours
hr += 12;
 
// Create a date object in local zone
var dlocalTime = new Date(year, month, date);
dlocalTime.setHours(hr, min, 0, 0);
 
// Adjust minutes for the time zones
d.setMinutes(d.getMinutes() + zones[zone] - d.getTimezoneOffset() );
 
// Adjust localTime minutes for the time zones so it is now a local date
// d is now a local date representing the same moment as the
// representing the same moment as the source date plus 12 hours
dlocalTime.setMinutes(dlocalTime.getMinutes() + zones[zone] - dlocalTime.getTimezoneOffset() );
return dlocalTime;
}
 
var inputDateString = 'March 7 2009 7:30pm EST';
 
console.log(
alert(
'Input: ' + inputDateString + '\n' +
'+12hrs in local time: ' + add12hours(inputDateString)
Anonymous user