我被要求在时钟视图模型上发布特定时间。具体时间是指1504108564(2017年8月30日星期三格林威治标准时间08:56:04 + 08:00)..我想在此时间前设置10分钟。我想把pTime放在时钟视图模型中。但它不起作用......我的代码在下面找到...
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转换为可读时间吗?怎么做?
答案 0 :(得分:1)
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)
});
编辑:如果你真的想从时间戳开始,你可以这样做,但要注意时间戳没有加入时区。因此,使用时间戳将根据客户端的Web浏览器的时区设置而不是服务器具有不同的结果。上面代码的前几行看起来像这样:
var pTime = 1504108564;
var julian = Cesium.JulianDate.fromDate(new Date(pTime * 1000));
var tenMinuteOffset = Cesium.JulianDate.addSeconds(julian, -600, new Cesium.JulianDate());