假设我有这个时间
'2018-08-03T15:53:57.000Z'
我只需要将时间部分转换为milliseconds
我尝试了此操作,但没有成功并抛出错误
moment.utc("2018-08-03T15:53:57.000Z").format('HH:mm:ss').milliseconds()
错误
TypeError: (0 , _moment2.default)(...).format(...).milliseconds is not a function
有人可以帮助我如何将仅时间转换为毫秒吗?
谢谢!
答案 0 :(得分:1)
如果要获得毫秒数,只需执行以下操作:
const ms = moment.utc("2018-08-03T15:53:57.000Z").valueOf()
答案 1 :(得分:1)
无需花时间去做。香草JS可以充分解析日期字符串。
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2" maxRequestLength="50240" executionTimeout="600"/> <!-- in Kb -->
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="52428800" /> <!-- in byte (50 Mb) -->
</requestFiltering>
</security>
并获取该日期的时间戳(以毫秒为单位);
var date = new Date('2018-08-03T15:53:57.000Z');
并且,由于一天中有86400秒(24 * 60 * 60),因此有86400万毫秒,我们可以用除以该数字后的余数来获得时间部分所代表的毫秒数。
var millis = date.getTime();
更新
现在使用var millisToday = millis % 8640000;
代替getTime()
,因为这是获取Date对象时间戳的“正确”方法。
答案 2 :(得分:1)
如果我弄错了,我会加我的答案,然后有人可以发表评论。
如果我将Context
发送给其他时区的人,则该人的时间会有所不同。如果我要求对方在他们的时间13:00拨打Skype电话,那可能意味着我的当地时间18:00。
因此,如果向我发送日期字符串的人来自英国并向我发送new Date().toISOString()
,那实际上对我来说意味着18:00。
以下是从日期的午夜开始以毫秒为单位正确获取时间的方法:
...T13:00.000Z
DST生效的示例:
const date = new Date(2007, 1, 1, 0, 0, 2).toISOString();
console.log('date:',date);
console.log('date in your local time:',new Date(date).toString());
const millisecondsFromMidNight = (date) => {
var dateObject = new Date(date);
return (
dateObject.getTime() -
new Date(
dateObject.getFullYear(),
dateObject.getMonth(),
dateObject.getDate(),
0,
0,
0,
0,
).getTime()
);
};
console.log(millisecondsFromMidNight(date));
答案 3 :(得分:0)
函数是moment()。milliseconds()
不是format()。毫秒