Javascript 使用矩将当前时间转换为毫秒

Javascript 使用矩将当前时间转换为毫秒,javascript,momentjs,Javascript,Momentjs,如果这次我有 '2018-08-03T15:53:57.000Z' 我只需要将时间部分转换为毫秒 我尝试了这个,但没有成功,并抛出错误 moment.utc("2018-08-03T15:53:57.000Z").format('HH:mm:ss').milliseconds() 错误 TypeError: (0 , _moment2.default)(...).format(...).milliseconds is not a function 有人能帮我把时间转换成毫秒吗 谢谢你 如果

如果这次我有

'2018-08-03T15:53:57.000Z'
我只需要将时间部分转换为
毫秒

我尝试了这个,但没有成功,并抛出错误

moment.utc("2018-08-03T15:53:57.000Z").format('HH:mm:ss').milliseconds()
错误

TypeError: (0 , _moment2.default)(...).format(...).milliseconds is not a function
有人能帮我把时间转换成毫秒吗


谢谢你

如果要获取毫秒数,只需执行以下操作:

const ms = moment.utc("2018-08-03T15:53:57.000Z").valueOf()

不需要利用时间来做这件事。vanilla JS可以充分解析日期字符串

let date = new Date('2018-08-03T15:53:57.000Z');
并获取该日期的时间戳(以毫秒为单位)

let millis = date.getTime();
因为一天有86400秒(24*60*60),所以有86400000毫秒,我们可以用除以这个数字后的余数得到时间部分代表的毫秒数。声明如下:

let millisToday = millis % 86400000;
更新

现在使用
getTime()
而不是
valueOf()
,因为这是获取日期对象时间戳的“正确”方法。

函数是矩().millizes()


Not format()。毫秒

如果我答错了,我会添加我的答案,然后有人可以发表评论

如果我将
new Date().toISOString()
发送给不同时区的某人,则此人的时间会有所不同。如果我让那个人在他们的时间13:00打skype电话,可能意味着我的当地时间是18:00

因此,如果向我发送日期字符串的人来自英国,并向我发送
…T13:00.000Z
,那么对我来说实际上意味着18:00

以下是如何正确获取从日期午夜转换为本地时间的时间(毫秒):

const date=新日期(2007,1,1,0,0,2).toISOString();
console.log('日期:',日期);
log('本地时间中的日期:',新日期(date).toString());
从午夜开始的常数毫秒=(日期)=>{
var dateObject=新日期(日期);
返回(
dateObject.getTime()-
新日期(
dateObject.getFullYear(),
dateObject.getMonth(),
dateObject.getDate(),
0,
0,
0,
0,
).getTime()
);
};

console.log(从午夜(日期)起毫秒)它抛出了什么错误?@WilliamChong更新了问题Welcome to Stack Overflow。您希望以毫秒为单位从00:00本地用户时间到15:53:57.000 UTC还是00:00到15:53:57.000本地用户时间?新日期(“2018-08-03T15:53:57.000Z”).getTime()因此根本不使用
15:53:57.000Z
中的
Z
?如果您选择了新日期('2018-08-03T15:53:57.000Z')
,您可能会得到一个不同的时间,除非您碰巧在英国。我建议改用。@HMR想解释一下原因?它与
valueOf()
有何不同?getTime是显式创建的,用于获取历元后的毫秒数,其中valueOf是类型强制中使用的常规函数;下面是一个类型强制的示例:
1-{valueOf:()=>1}
为0,其中
1-{valueOf:()=>2}
为-1如果所述日期的夏令时发生更改,则此操作可能会失败。e、 g.在英国,2018年3月25日01:00开始实行夏令时,因此时间是2018-03-25T02:00:00+01:00,但午夜是
2018-03-25T00:00+00:00
。虽然现在离午夜只有一个小时了,但我相信你的答案是2。不知道这是否是OP想要的细节级别@phuzi我添加了一个示例,从午夜算起的分钟数,其中一个值在DST中,另一个值在DST(西欧)2分钟后,它工作正常。@HMR感谢您的帮助,但我认为phuzi的答案是correct@Profer如果你在英国,但目前没有参加DST,那么就是这样。DST指的是什么?