动作脚本3.0中的日期转换和数学

我有两个值,一个是StartTime
YYYY-MM-DD HH:MM:SS
形式的字符串,另一个是
HH:MM:SS
形式的持续时间。从这两个值我需要确定endTime并将其放在与StartTime相同的格式中。 我试图做出类似的东西
startTimeArray:Array = StartTime.split(/[ -:]/);
var date:Date = new Date(startTimeArray[0], startTimeArray[1]-1, startTimeArray[2], startTimeArray[3], startTimeArray[4], startTimeArray[5] );
但是当然分裂导致字符串而不是数字,我无法想象如何将所有这些时间段转换为数字,然后我没有看到通过将持续时间日期对象添加到StartTime来应用数学的方法日期对象,如果我能够正确转换它们。 我在这里走好路吗?如果是这样,我如何将字符串数组转换为数字,如何将持续时间添加到starttime?谢谢     
已邀请:
const start:String = "2011-04-03 01:39:48";
const startArray:Array = start.split(/[: -]/g);
var startDate:Date = new Date(
    startArray[0], startArray[1]-1, startArray[2],
    startArray[3], startArray[4], startArray[5]
);
const duration:String = "02:10:10";
const durationArray:Array = duration.split(/:/g);
var durationDate:Date = new Date();
durationDate.setTime(
    durationArray[0] * 3600000 + /* hour = 60m * 60s * 1000ms */
    durationArray[1] * 60000 + /* minute = 60s * 1000ms */
    durationArray[2] * 1000 /* second = 1000ms */
);
var finalDate:Date = new Date();
finalDate.setTime(startDate.time + durationDate.time);
trace(startDate);
trace(durationDate.time);
trace(finalDate);
输出:
Sun Apr 3 01:39:48 GMT-0300 2011
7810000
Sun Apr 3 03:49:58 GMT-0300 2011
    
您将首先分割日期和时间,然后使用数组从那里开始工作。
var date_:String = StartTime.substring(0,StartTimet.indexOf(" "));
var time_:String = StartTime.substring(StartTime.indexOf(" ")+1, StartTime.length);
trace(date_); // YYYY-MM-DD
trace(time_); // HH:MM:SS
然后将日期拆分为数组
var date_array:Array = StartTime.split("-");
Number
转换数组的元素 然后按时执行相同的操作,但使用“:”进行拆分。 持续时间可以相同的方式拆分。然后在铸造后使用正常添加。
var d:Date = new Date(year,month,date,hour,minutes,seconds);
var d_added:Date = new Date(year,month,date,hour+duration_hour,
              minutes+duration_minutes,seconds+duration_seconds);
    

要回复问题请先登录注册