我正在尝试从与本地时间无关的特定时区获取时间戳。
我希望我的世界各地的客户看到完全相同的时间戳。这有可能吗?我不希望在node.js中找到解决方案,但如果有可用的库,请包含它。
答案 0 :(得分:0)
您可以通过JavaScript,使用$y=1;
$num_term = 10;
//start date
$month_sched = date("2019-01-01");
while($y <= $num_term) {
//15th
$month_line_15 = strtotime($month_sched." +14 day");
//last day of month
$month_line_last = strtotime($month_sched." next month - 1 hour");
echo $day = date("M-d", $month_line_15);
echo $month_int = date("M-d", $month_line_last);
$month_sched = date("Y-m-d",strtotime($month_sched." +1month"));
$y++;
}
对象或使用专门的库(例如moment.js)来通过JavaScript生成与时区无关的时间戳:
Date
const timestampMilliseconds = (new Date()).getTime();
console.log(timestampMilliseconds);
const timestampSeconds = Math.round((new Date()).getTime() / 1000);
console.log(timestampSeconds);
const timestampSecondsMoment = moment().unix();
console.log(timestampSecondsMoment)
答案 1 :(得分:0)
您说要获得“特定时区”的时间戳。如果您知道该特定时区的时区偏移量,那么您应该能够获得UTC日期,从中减去时区偏移量,并输出在所有客户端上都应该相同的日期字符串。该语句应该起作用:
var timeZoneOffset = 300; // Eastern Standard Time
var sameDate = (new Date(((new Date()) - (timeZoneOffset * 60 * 1000)))).toISOString()
如果本地计算机的日期和时间正确,则 new Date()
应该在所有客户端上以毫秒为单位返回相同的时间。时区偏移量以分钟为单位,因此您需要将它们乘以60 * 1000(60秒/分钟乘以1000毫秒/秒),然后从UTC日期中减去那么多毫秒,以使其等于时区中的当前时间。有偏移量。然后将其转换为ISO字符串。您可以根据需要操纵结果字符串。也许最后摆脱Z。
var dateWithoutZ = sameDate.slice(0,-1);