如何在铯中的特定时间之前设置 10 分钟

how to set 10 mins before the particular time in Cesium

我被要求 post 时钟视图模型上的特定时间。具体时间是指1504108564(Wednesday, August 30, 2017 11:56:04 PM GMT+08:00)..我想在这个时间之前设置10分钟。我想把 pTime 放在时钟视图中 model.But 它不起作用...我的代码在下面找到...

var pTime = 1504108564;
var tenMinuteOffset = Cesium.JulianDate.addSeconds(pTime, -600, new Cesium.JulianDate());

var clock = new Cesium.Clock({
    startTime : tenMinuteOffset,
    currentTime : tenMinuteOffset,
    clockRange : Cesium.ClockRange.LOOP_STOP,
    clockStep : Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER
});

var viewer = new Cesium.Viewer('cesiumContainer', {
    infoBox : false,
    selectionIndicator : false,
    shadows : true,
    clockViewModel: new Cesium.ClockViewModel(clock)
});

我的问题是我想在时钟中使用这个时间戳...我想在时间戳前设置 10 分钟 我需要将 pTime 转换为可读时间吗?怎么做?

addSeconds 的第一个参数应该是对 Cesium.JulianDate 的引用,而不是整数。

试一试:

var pTime = Cesium.JulianDate.fromIso8601('2017-08-30T11:56:04+08');
var tenMinuteOffset = Cesium.JulianDate.addSeconds(pTime, -600, new Cesium.JulianDate());

var clock = new Cesium.Clock({
    startTime : tenMinuteOffset,
    currentTime : tenMinuteOffset,
    clockRange : Cesium.ClockRange.LOOP_STOP,
    clockStep : Cesium.ClockStep.SYSTEM_CLOCK_MULTIPLIER
});

var viewer = new Cesium.Viewer('cesiumContainer', {
    infoBox : false,
    selectionIndicator : false,
    shadows : true,
    clockViewModel: new Cesium.ClockViewModel(clock)
});

编辑: 如果你真的想从时间戳开始,你可以这样做,但要注意时间戳没有内置时区。因此,根据 客户端网络浏览器 而非服务器的时区设置,使用时间戳会产生不同的结果。上面代码的前几行看起来像这样:

var pTime = 1504108564;
var julian = Cesium.JulianDate.fromDate(new Date(pTime * 1000));
var tenMinuteOffset = Cesium.JulianDate.addSeconds(julian, -600, new Cesium.JulianDate());