将分钟转换为秒

时间:2012-01-18 09:23:00

标签: javascript excel

我的电子表格的值如下:

1:29.460

我需要将其转换为

89.460

我有很多这些游戏补偿。我可以在Excel中执行此操作,也可以使用javascript。

对配方的任何建议都表示赞赏!

5 个答案:

答案 0 :(得分:7)

这是一个JavaScript解决方案:

function convert(input) {
    var parts = input.split(':'),
        minutes = +parts[0],
        seconds = +parts[1];
    return (minutes * 60 + seconds).toFixed(3);
}

convert('1:29.460'); // '89.460'

答案 1 :(得分:3)

您可以使用以下代码:

function toSeconds(str) {
    var pieces = str.split(":");
    var result = Number(pieces[0]) * 60 + Number(pieces[1]);
    return(result.toFixed(3));
}

toSeconds("1:29.460");   // returns 89.460

您可以在此处查看:http://jsfiddle.net/jfriend00/RrZ4W/

答案 2 :(得分:1)

为了全面了解,这里是VBA(UDF)解决方案:

Public Function ConvertToSecond(r As Range)
Dim arr As Variant, lMinutes As Long, lSeconds As Double
Debug.Print (r.Value)
arr = Split(r.Value, ":")
lMinutes = arr(0)
lSeconds = CDbl(Replace(arr(1), ".", ","))
ConvertToSecond = Format(lMinutes * 60 + lSeconds, "#0.0##")
End Function

答案 3 :(得分:0)

您的单元格格式不正确,excel将您的信息存储为hh:mm。

您应该将小时列添加到您的单元格中,如下所示:0:1:29.460并确保将其设置为时间格式。

然后在另一列中确保将单元格格式设置为数字并添加以下公式(假设您的时间存储在单元格A1中):

=A1*24*60*60

答案 4 :(得分:0)

在VBA模块中编写以下功能

Public Function FormatMinutes(ByVal stime) As String
    Dim hour: hour = Mid(stime, 1, InStr(1, stime, ":") - 1)
    Dim minute: minute = CInt(Mid(stime, InStr(1, stime, ":") + 1, InStr(1, stime, ".") - InStr(1, stime, ":") - 1))
    FormatMinutes = (hour * 60 + minute) & Mid(stime, InStr(1, stime, "."), Len(stime))
End Function

要使用它,只需将=FormatMinute(A1)放在公式中。