从JavaScript中的特定时区获取当前时间戳

时间:2019-01-21 11:09:46

标签: javascript jquery timestamp unix-timestamp

我正在尝试从与本地时间无关的特定时区获取时间戳。

我希望我的世界各地的客户看到完全相同的时间戳。这有可能吗?我不希望在node.js中找到解决方案,但如果有可用的库,请包含它。

2 个答案:

答案 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);