Time

时间控制器。

new CooWasm.Time(timeCallback)

Name Type Default Description
timeCallback CallbackString null optional

时间信息的函数回调。

Properties:
Name Type Description
callback function

静态回调函数属性,用于接收时间更新通知。

Example:
// 创建时间控制器实例并传入回调函数
var time = new CooWasm.Time((timeString) => {
    console.log("time:", timeString);
});

// 或者使用静态方式设置回调:
CooWasm.Time.callback = (timeString) => {
    console.log("time:", timeString);
};
var time = new CooWasm.Time();

// 静态方法使用示例:
CooWasm.Time.setTimeScale(2.0);           // 设置时间倍率
CooWasm.Time.setTimeZone(8);              // 设置时区
CooWasm.Time.setTime(new Date());         // 设置时间
CooWasm.Time.setTimeInterval(CooWasm.EnumTimeIntervalType.SECOND); // 设置回调间隔
CooWasm.Time.pause();                     // 暂停时间
CooWasm.Time.resume();                    // 继续时间
CooWasm.Time.reset();                     // 重置时间
var currentTime = CooWasm.Time.getTime(); // 获取当前时间
Demo:

Methods

staticCooWasm.Time.getTime(format)Date|Number|String

获取当前时间。

Name Type Default Description
format String 'date' optional

返回时间的格式。 'date':返回JavaScript Date对象(默认)。 'timestamp':返回毫秒时间戳。 'rfc1123':返回RFC1123格式字符串。 'iso':返回ISO8601格式字符串。

Returns:

根据format参数返回不同格式的时间。

Example:
// 获取Date对象
var date = CooWasm.Time.getTime();
var date = CooWasm.Time.getTime('date');

// 获取时间戳
var timestamp = CooWasm.Time.getTime('timestamp');

// 获取RFC1123格式字符串
var rfc1123 = CooWasm.Time.getTime('rfc1123');

// 获取ISO格式字符串
var iso = CooWasm.Time.getTime('iso');

staticCooWasm.Time.getTimeInterval()Number

获取时间回调的间隔。

Returns:

时间回调的间隔,单位:秒。小于0为不触发回调,0为每帧触发回调

staticCooWasm.Time.pause()

暂停时间播放。

Example:
// 暂停时间播放
CooWasm.Time.pause();

staticCooWasm.Time.reset()

重置时间控制器到初始状态。

Example:
// 重置时间控制器
CooWasm.Time.reset();

staticCooWasm.Time.resume()

恢复时间播放。

Example:
// 恢复时间播放
CooWasm.Time.resume();

staticCooWasm.Time.setTime(timeValue, preserveTimezone)

设置当前时间。

Name Type Default Description
timeValue Date | Number | String

要设置的时间值。 Date对象:JavaScript Date对象。 数字:时间戳(毫秒或秒,自动识别)。 字符串:各种时间格式字符串,包括RFC1123、ISO8601等。

preserveTimezone Boolean true optional

是否保持当前设置的时区。为true时,会将输入时间 按照当前时区进行调整;为false时,直接使用输入时间的时区信息。

Example:
// 使用Date对象设置时间(保持当前时区)
CooWasm.Time.setTime(new Date());

// 使用时间戳设置时间
CooWasm.Time.setTime(1640995200000); // 毫秒时间戳
CooWasm.Time.setTime(1640995200);    // 秒时间戳

// 使用字符串设置时间(自动应用当前时区)
CooWasm.Time.setTime("2022-01-01 12:00:00");

// 直接使用带时区信息的字符串(不调整时区)
CooWasm.Time.setTime("Sat, 01 Jan 2022 12:00:00 GMT", false);

staticCooWasm.Time.setTimeInterval(second)

设置时间回调的间隔。

Name Type Description
second Number

间隔时间,单位:秒。小于0为不触发回调,0为每帧触发回调

Example:
// 设置每秒触发一次时间回调
CooWasm.Time.setTimeInterval(1);

// 设置不触发回调
CooWasm.Time.setTimeInterval(-1);

// 每帧触发回调
CooWasm.Time.setTimeInterval(0);

staticCooWasm.Time.setTimeScale(scale)

设置时间播放的倍率。

Name Type Description
scale Number

时间倍率。例如:1.0为正常速度,2.0为双倍速度,0.5为半倍速度。

Example:
// 设置双倍速播放
CooWasm.Time.setTimeScale(2.0);

// 设置半倍速播放
CooWasm.Time.setTimeScale(0.5);

staticCooWasm.Time.setTimeZone(timezone)

设置时区偏移量。

Name Type Description
timezone Number | String

时区偏移量或时区字符串。 数字:相对于UTC的小时偏移量,例如8表示UTC+8,-5表示UTC-5。 字符串:支持多种格式如"GMT+8"、"UTC-5:30"、"+08:00"、"+0800"等。

Example:
// 设置东八区(北京时间)
CooWasm.Time.setTimeZone(8);

// 使用字符串格式设置时区
CooWasm.Time.setTimeZone("GMT+8");
CooWasm.Time.setTimeZone("UTC-5:30");
CooWasm.Time.setTimeZone("+08:00");