如何使用 VBScript 将数字转换为 mm:ss 格式

问题描述 投票:0回答:4

我想使用 VBScript 将数字(小于 3600)转换为 mm:ss 格式。我面临的主要问题是添加前导零,以防我得到一个数字。
例如:- 在尝试将 306 转换为 mm:ss 格式时,我得到的输出为 5:6 而不是 05:06。
这是我的代码..

entered_time = "306"
quotient = entered_time/60
quotient = Int(quotient)
MsgBox quotient
remainder = entered_time Mod 60
MsgBox remainder
time_format = quotient&":"&remainder
msgbox time_format

感谢您提前的帮助。

time vbscript
4个回答
3
投票

像这样尝试;)

intTotalSecs = 306
MsgBox intTotalSecs & "(s) ===> " & ConvertTime(intTotalSecs),vbinformation,"output time format as hh:mm:ss"
'************************************************************
Function ConvertTime(intTotalSecs)
Dim intHours,intMinutes,intSeconds,Time
intHours = intTotalSecs \ 3600
intMinutes = (intTotalSecs Mod 3600) \ 60
intSeconds = intTotalSecs Mod 60
ConvertTime = LPad(intHours) & " h : " & LPad(intMinutes) & " m : " & LPad(intSeconds) & " s"
End Function
'************************************************************
Function LPad(v) 
 LPad = Right("0" & v, 2) 
End Function
'************************************************************

1
投票

如果您的语言环境/区域设置合适,您只需执行以下操作:

>> setlocale "de-de"
>> secs = 308
>> ts = TimeSerial(0, 0, secs)
>> WScript.Echo FormatDateTime(ts, vbLongTime)
>>
00:05:08

如果这是不可能的,请在基于 .NET 的格式类中投入一些精力,例如这个


0
投票

简单的

if remainder < 10
怎么样?


0
投票

是的,您可以调用这个函数:

Function TimePassed(t1, t2)
    Dim t : t = DateDiff("s",t1,t2)
    Dim hr, min, sec

    t1=t

    hr=t\3600
    If len(hr)=1 Then hr="0" & hr

    t=t mod 3600
    min=t\60
    If len(min)=1 Then min="0" & min

    sec=t mod 60
    If len(sec)=1 Then sec="0" & sec

    TimePassed = hr & ":" & min & ":" & sec

End Function

Dim startDate : startDate = #2024/11/13 08:22:00#
Dim endDate : endDate = #2024/11/13 10:52:00#

Response.Write TimePassed(startDate, endDate)
© www.soinside.com 2019 - 2024. All rights reserved.