moment js:自定义格式的字符串到天的持续时间

时间:2019-01-25 09:51:25

标签: javascript time momentjs

随着时间的流逝,我的弦乐变得越来越奇怪。这样的东西-"2.23:59:59.99"。这意味着点之前的第一个数字是天数(2天),另一个是时间数-23小时59分59秒和9900毫秒(或可能是99毫秒)。因此,我需要将其转换为十进制数字,例如2.99。我该如何使用moment.js?

2 个答案:

答案 0 :(得分:3)

您可以简单地从"2.23:59:59.99"字符串中create持续一会儿

  

2.1.0 版本开始,此刻支持解析ASP.NET样式的时间跨度。支持以下格式。

     

格式是小时,分钟,第二个字符串,中间用冒号隔开,例如23:59:59。天数可以像这样7.23:59:59前面加上点分隔符。 23:59:59.999也支持部分秒。

,然后使用asDays()

在几天内获得其值
  

moment.duration().asDays()获得持续时间的长度,以天为单位。


要从"2.23:59:59.99"返回2.99,可以使用moment.duration(Number, String)创建一个持续时间,并使用format()插件的moment-duration-format方法(使用{{ 3}}参数)

// 2.23:59:59.99 to 2.99
const dur1 = moment.duration("2.23:59:59.99");
const durAsDays = dur1.asDays();
console.log(durAsDays);

// 2.99 to 2.23:59:59.99
const dur2 = moment.duration(durAsDays, 'days');
console.log(dur2.format("d.HH:mm:ss", 2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/2.2.2/moment-duration-format.min.js"></script>

答案 1 :(得分:0)

using (var matFromPng = Imgcodecs.Imread(cachedFileName, Imgcodecs.ImreadColor))
using (var vect = new MatOfByte())
{
    if (Imgcodecs.Imencode(".jpg", matFromPng, vect))
    {
        var stream = new MemoryStream(vect.ToArray());
        // Do something with your stream...

        cachedFileName = Path.Combine(CacheDir.AbsolutePath, "her.jpg");
        using (var cacheFilestreamToJpeg = new FileStream(cachedFileName, FileMode.Create, FileAccess.Write))
        {
            stream.CopyTo(cacheFilestreamToJpeg);
        }
        stream.Dispose();
    }
}

请参考Moment JS .asDays()方法