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

时间:2018-11-22 10:20:35

标签: javascript momentjs

假设我有这个时间

'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

有人可以帮助我如何将仅时间转换为毫秒吗?

谢谢!

4 个答案:

答案 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()。毫秒