从日期字符串中减去小时数

时间:2017-04-10 11:56:54

标签: javascript node.js datetime momentjs

我在节点js工作,并使用moment-timezone package我生成了一个日期:

2017-4-10 19:04:47

以下是我用于生成此日期时间的代码,该日期时间适用于亚洲/上海时区:

var momentTimezone = require('moment-timezone');
console.log(momentTimezone(new Date()).tz('Asia/shanghai').format('Y-M-D HH:MM:ss'));

现在我想从这个时间减去几小时来生成另一个日期。我想减去9940小时。

我搜索了很多个小时但找不到确切的解决方案。

下面是我必须复制的python代码:

 end_time = datetime.now(g.china) 
 //g.china =   timezone("Asia/Shanghai")
 begin_time = end_time - timedelta(hours=9940)

对此的任何指导都将受到高度赞赏。

谢谢!

1 个答案:

答案 0 :(得分:3)

您只需使用时刻subtract方法。

这是一份工作样本:

// Current time in Shanghai
var m = moment.tz('Asia/Shanghai');
console.log(m.format('Y-M-D HH:mm:ss'));
// Subtract 9940 hours
console.log(m.subtract(9940, 'hours').format('Y-M-D HH:mm:ss'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.7/moment-timezone-with-data-2010-2020.min.js"></script>

请注意,您应该使用小写mm来显示分钟,因为大写MM代表几个月。请参阅format令牌。