| // 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'; |
| } |