blob: 051c4728e2e495a323f9ed64acd3be8d25603b00 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2
3var GetIntrinsic = require('get-intrinsic');
4
5var $TypeError = GetIntrinsic('%TypeError%');
6
7var $isNaN = require('../helpers/isNaN');
8var padTimeComponent = require('../helpers/padTimeComponent');
9
10var HourFromTime = require('./HourFromTime');
11var MinFromTime = require('./MinFromTime');
12var SecFromTime = require('./SecFromTime');
13var Type = require('./Type');
14
15// https://262.ecma-international.org/9.0/#sec-timestring
16
17module.exports = function TimeString(tv) {
18 if (Type(tv) !== 'Number' || $isNaN(tv)) {
19 throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number');
20 }
21 var hour = HourFromTime(tv);
22 var minute = MinFromTime(tv);
23 var second = SecFromTime(tv);
24 return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT';
25};