让我们假设我知道这一次(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
当我只知道时间和时区时,如何获得完整的日期时间或时间戳?
答案 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);