从今天的当地时间获取UTC时间戳

时间:2014-08-25 17:21:28

标签: javascript timestamp unix-timestamp utc

让我们假设我知道这一次(hh:mm:ss)没有约会,但我知道它是今天:

  

12时34分56秒

我知道时间是在CST时区(UTC +0800)。我需要从时间上获得时间戳。

我们假设当前 UTC时间是2014/08/25 17:10:00 CST是2014/08/26 01:10:00 (UTC +0800 )所以这意味着在CST已经是第二天了。因此我不能使用这样的东西:

var d = new Date().toJSON().slice(0,10);
// "d" returns "2014-08-25" in local time -> this is bad

我需要转换一下:

  

1:10 (CST) - >至 2014/08/25 17:10 (UTC)或其时间戳 1408986600

当我只知道时间和时区时,如何获得完整的日期时间或时间戳?

2 个答案:

答案 0 :(得分:1)

您可以随时直接操纵Date对象的属性:

var date = new Date();

date.setHours(5);
date.setMinutes(12);
date.setSeconds(10);

console.log(date.toUTCString());

答案 1 :(得分:0)

我想我找到了使用moment-timezone.js的简单方法:

// hh:mm:ss in CST timezone
var cst_time = '1:10:00'; 

// get today's date in CST timezone
var cst_today = moment.tz("Asia/Shanghai").format("YYYY-MM-DD"); 

// convert date and time from CST to UTC and format it
var timestamp = moment(cst_today + " " + cst_time + " +0800").utc().format("YYYY/MM/DD HH:mm:ss");

// returns "2014/08/25 17:10:00" and it is correct
console.log(timestamp);