date.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. var validator = require('utils/validator');
  19. module.exports = {
  20. dateMonths:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
  21. dateDays:['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
  22. dateFormatZeroFirst:function (time) {
  23. if (time < 10) return '0' + time;
  24. return time;
  25. },
  26. /**
  27. * Convert timestamp to date-string 'DAY_OF_THE_WEEK, MONTH DAY, YEAR HOURS:MINUTES'
  28. * @param timestamp
  29. * @return date-string
  30. */
  31. dateFormat:function (timestamp) {
  32. if (!validator.isValidInt(timestamp)) return timestamp;
  33. var date = new Date(timestamp * 1);
  34. var months = this.dateMonths;
  35. var days = this.dateDays;
  36. return days[date.getDay()] + ', ' + months[date.getMonth()] + ' ' + this.dateFormatZeroFirst(date.getDate()) + ', ' + date.getFullYear() + ' ' + this.dateFormatZeroFirst(date.getHours()) + ':' + this.dateFormatZeroFirst(date.getMinutes());
  37. },
  38. /**
  39. * Convert time in seconds to 'HOURS:MINUTES:SECONDS'
  40. * @param seconds
  41. * @return formatted date-string
  42. */
  43. dateFormatInterval:function (timestamp_interval) {
  44. if (!validator.isValidInt(timestamp_interval)) return timestamp_interval;
  45. var hours = Math.floor(timestamp_interval / (60 * 60));
  46. var divisor_for_minutes = timestamp_interval % (60 * 60);
  47. var minutes = Math.floor(divisor_for_minutes / 60);
  48. var divisor_for_seconds = divisor_for_minutes % 60;
  49. var seconds = Math.ceil(divisor_for_seconds);
  50. return (hours < 10 ? '0' : '') + hours + ':' + (minutes < 10 ? '0' : '') + minutes + ':' + (seconds < 10 ? '0' : '') + seconds;
  51. }
  52. }