ESRMeter taken from http://members.shaw.ca/swstuff/esrmeter.html (find website on internet archive). Offered here with permission.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.8 KiB

5 years ago
  1. /** timestamp namespaced methods **/
  2. var __wbTs = (function() {
  3. function _split_timestamp(timestamp) {
  4. if(typeof timestamp == "number") {
  5. timestamp = timestamp.toString();
  6. }
  7. return [
  8. timestamp.slice(-14, -10),
  9. timestamp.slice(-10, -8),
  10. timestamp.slice(-8, -6),
  11. timestamp.slice(-6, -4),
  12. timestamp.slice(-4, -2),
  13. timestamp.slice(-2)
  14. ];
  15. }
  16. var MONTHS_LONG = [
  17. "January", "February", "March", "April", "May", "June",
  18. "July", "August", "September", "October", "November", "December"
  19. ];
  20. var MONTHS_SHORT = [
  21. "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
  22. "Oct", "Nov", "Dec"
  23. ];
  24. var FIELDS = {
  25. 'Y': function(d) { return d.getUTCFullYear() },
  26. 'm': function(d) { return d.getUTCMonth() + 1 },
  27. 'b': function(d) { return MONTHS_SHORT[d.getUTCMonth()] },
  28. 'B': function(d) { return MONTHS_LONG[d.getUTCMonth()] },
  29. 'd': function(d) { return d.getUTCDate() },
  30. 'H': function(d) { return ('0'+d.getUTCHours()).slice(-2) },
  31. 'M': function(d) { return ('0'+d.getUTCMinutes()).slice(-2) },
  32. 'S': function(d) { return ('0'+d.getUTCSeconds()).slice(-2) },
  33. '%': function() { return '%' }
  34. };
  35. function timestamp2datetime(timestamp) {
  36. var ts_array = _split_timestamp(timestamp);
  37. return new Date(Date.UTC(
  38. ts_array[0], ts_array[1]-1, ts_array[2],
  39. ts_array[3], ts_array[4], ts_array[5]
  40. ));
  41. }
  42. return {
  43. timestamp2datetime: timestamp2datetime,
  44. getMonthName: function(mon) {
  45. return MONTHS_LONG[mon];
  46. },
  47. format: function(timestamp, fmt) {
  48. return fmt.replace(/%./g, function(ph) {
  49. var field = FIELDS[ph[1]];
  50. return field ? field(timestamp2datetime(timestamp)) : ph;
  51. });
  52. }
  53. }
  54. })();