12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- function formatTime(time) {
- if (typeof time !== 'number' || time < 0) {
- return time
- }
- const hour = parseInt(time / 3600, 10)
- time %= 3600
- const minute = parseInt(time / 60, 10)
- time = parseInt(time % 60, 10)
- const second = time
- return ([hour, minute, second]).map(function (n) {
- n = n.toString()
- return n[1] ? n : '0' + n
- }).join(':')
- }
- function formatLocation(longitude, latitude) {
- if (typeof longitude === 'string' && typeof latitude === 'string') {
- longitude = parseFloat(longitude)
- latitude = parseFloat(latitude)
- }
- longitude = longitude.toFixed(2)
- latitude = latitude.toFixed(2)
- return {
- longitude: longitude.toString().split('.'),
- latitude: latitude.toString().split('.')
- }
- }
- function fib(n) {
- if (n < 1) return 0
- if (n <= 2) return 1
- return fib(n - 1) + fib(n - 2)
- }
- function formatLeadingZeroNumber(n, digitNum = 2) {
- n = n.toString()
- const needNum = Math.max(digitNum - n.length, 0)
- return new Array(needNum).fill(0).join('') + n
- }
- function formatDateTime(date, withMs = false) {
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- const day = date.getDate()
- const hour = date.getHours()
- const minute = date.getMinutes()
- const second = date.getSeconds()
- const ms = date.getMilliseconds()
- let ret = [year, month, day].map(value => formatLeadingZeroNumber(value, 2)).join('-') +
- ' ' + [hour, minute, second].map(value => formatLeadingZeroNumber(value, 2)).join(':')
- if (withMs) {
- ret += '.' + formatLeadingZeroNumber(ms, 3)
- }
- return ret
- }
- function compareVersion(v1, v2) {
- v1 = v1.split('.')
- v2 = v2.split('.')
- const len = Math.max(v1.length, v2.length)
- while (v1.length < len) {
- v1.push('0')
- }
- while (v2.length < len) {
- v2.push('0')
- }
- for (let i = 0; i < len; i++) {
- const num1 = parseInt(v1[i], 10)
- const num2 = parseInt(v2[i], 10)
- if (num1 > num2) {
- return 1
- } else if (num1 < num2) {
- return -1
- }
- }
- return 0
- }
- module.exports = {
- formatTime,
- formatLocation,
- fib,
- formatDateTime,
- compareVersion
- }
|