// Copyright 2009 Google Inc. All Rights Reserved. /** * @fileoverview Utility functions for formating date. */ /** * Formats start date and end date in JSON format to string of format: "09/09/2010 20:00 PM to 22:00 PM PST" * @param {object} start date in JSON format. * @param {object} end date in JSON format. * @param {string} formatted date string. */ function formatDate(start,end) { var s_ampm = null; var e_ampm = null; var toStr = function (num) { if (num <= 12) { return "" + num; } else { return "" + (num - 12); } }; var getMonthName = function (num) { switch(num) { case 1: return 'January'; case 2: return 'February'; case 3: return 'March'; case 4: return 'April'; case 5: return 'May'; case 6: return 'June'; case 7: return 'July'; case 8: return 'August'; case 9: return 'September'; case 10: return 'October'; case 11: return 'November'; case 12: return 'December'; } } var regex = /(^\d{4})-(\d{2})-(\d{2})\s{1}(\d{2}):(\d{2}):(\d{2}$)/; var s_match = regex.exec(start.toString()); if( s_match == null) { return ''; } var yy = s_match[1]; var mm = parseInt(s_match[2], 10 /** base 10 **/); var dd = s_match[3]; var s_hh = parseInt(s_match[4], 10 /** base 10 **/); if (s_hh > 12) { s_ampm = "PM"; } else { s_ampm = "AM"; } s_hh = toStr(s_hh); var s_mi = s_match[5]; var str = getMonthName(mm) + " " + dd + ", " + yy ; str += " " + s_hh + ":" + s_mi; str += " " + s_ampm; regex = /(^\d{4})-(\d{2})-(\d{2})\s{1}(\d{2}):(\d{2}):(\d{2}$)/; var e_match = regex.exec(end.toString()); if( e_match == null) { return str + ' PST'; } var e_hh = parseInt(e_match[4], 10 /** base 10 **/); if (e_hh > 12) { e_ampm = "PM"; } else { e_ampm = "AM"; } e_hh = toStr(e_hh); var e_mi = e_match[5]; str += " to " + e_hh + ":" + e_mi; str += " " + e_ampm; str += " PST"; return str; } function formatDateUtf(date) { var regex = /(^\d{4})-(\d{2})-(\d{2})\s{1}(\d{2}):(\d{2}):(\d{2}$)/; var match = regex.exec(date.toString()); var yy = match[1]; var mm = match[2]; var dd = match[3]; var hh = parseInt(match[4], 10) + 8; // +8 to convert from PST to GMT var mi = match[5] + "00"; // add seconds if (hh >= 24) { // If the GMT adjustment put us into the next day, dd++; // increment the day and hh -= 24; // set the hour back to real hours } hh = hh < 10 ? "0" + hh : hh; // form a double digit number for single digit hours return yy + mm + dd + 'T' + hh + mi + 'Z'; }