0

我在我的角度项目中使用https://valor-software.com/ngx-bootstrap/#/timepicker 。

在我请求服务器之前,我有一项任务将那个时间隐蔽到 UTC。

当我从时间选择器值中选择时间时,如下所示。

在此处输入图像描述

现在,我创建了一个函数来使用 moment.js 将其转换为 UTC

static FormatimeSpanBeforeSubmit(date: Date | string ) {

        const dateFromTimePicker = date as Date;


        // Convert it to format "HH:mm:ss"
        let formatedTime = moment.utc(dateFromTimePicker).format('HH:mm:ss');

        // Split details in array because I want seconds as always "00"
        let list = formatedTime.split(/[\s:]+/);

        // Updating last value ""ss" to "00"
        formatedTime = formatedTime.replace(new RegExp(list[list.length -1] + '$'), '00');

        //Final value
        return date ? formatedTime  : null;

    }

预期输出:它应该将我的时间转换为“9:51:00”

电流输出:“10:54:00”

请帮助我并指导我如何获得正确的价值。

评论 :

(2) 根据Hoài Nam的评论,我已经更新了我的代码,如下所示,我仍然得到 10:54:00

请在下面找到两张图片 在此处输入图像描述

在此处输入图像描述

4

2 回答 2

0

我无法发表评论,所以我会在这里回复你:我在这里找到了另一个解决方案https://stackoverflow.com/a/40381090/9768008

这是我尝试过的:

    var time = 1569326290681; //Tue Sep 24 2019 18:58:10 GMT+0700 (Indochina Time)
    var os = new Date().getTimezoneOffset();
    var converted = new Date((time + (os * 60 * 1000)));
    console.log(converted); // Tue Sep 24 2019 11:58:10 GMT+0700 (Indochina Time)

在此处输入图像描述

于 2019-09-24T12:09:25.203 回答
0

问题是来自服务器的日期格式错误。所以,我得到的是 GMT+ 6.55 而不是 GMT+ 8。

感谢您的帮助。解决了这两种解决方案。我的和@HoàiNam 的都是正确的。

于 2019-09-25T03:36:54.923 回答