我需要帮助格式化日期,以便以所需的格式获取结果。
Expected: Sun Sep 30 2018 20:39:52 GMT+0530
Recieved: Sun Sep 30 2018 00:00:00 GMT+0530
console.log(moment('2018-09-30'));
答案 0 :(得分:0)
示例代码不包含带时间的日期。
但是,要以某种所需的格式打印,可以使用moment.format()
。参见documentation。
const m = moment('2018-09-30');
console.log(m.format());
console.log(m.format('YYYY-MM-DD, HH:mm:ss ZZ'));
console.log(m.format('ddd MMM DD YYYY HH:mm:ss \\G\\M\\T ZZ'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
如果您实际上是在发送样本中的时间,则代码仍将相同。除非您想保留原始时区。为此,我在几分钟前回答了同样的问题。这是reply for that。
答案 1 :(得分:0)
moment.parseZone('2016-05-03T22:15:01+02:00').local().format();
答案 2 :(得分:0)
console.log(moment('2018-09-30')); won't give you `Sun Sep 30 2018 00:00:00 GMT+0530` this.
它将打印出一个矩对象。
如果您需要确切的格式,则可能不需要moment.js,
console.log(new Date().toString()) //"Sun Nov 04 2018 00:00:00 GMT+0530 (India Standard Time)"
希望有帮助。
答案 3 :(得分:0)
如果您只是想要当前时间并以所需的格式输出,则应该这样做:
moment().format('dddd MMM DD YYYY HH:MM:SS Z')
输出: 2018年10月1日星期一03:10:39 +10:00
您不需要将当前日期传递给moment()
答案 4 :(得分:0)
您没有提供时间,所以您会得到:
moment('2018-09-30').toString() // "Sun Sep 30 2018 00:00:00 GMT-0700"
现在,如果您将moment
与new Date('2018-09-30')
一起使用,但仍然不提供时间:
moment(new Date('2018-09-30')).toString() // "Sun Sep 30 2018 17:00:00 GMT+0000"
但是您现在获得的是默认时间GMT+0000
,而不是您期望的确切时间。
现在,如果您仅使用new Date()
,则将获得所需的输出,因为new Date()
包含日期和时间等。
moment(new Date()).toString() // "Sun Sep 30 2018 18:55:46 GMT-0700"
因此,最重要的是...如果您希望超时,请输入:)
答案 5 :(得分:0)
我是这样做的:
const currentTime = moment().format('HH:mm:ss'); // 20:39:52
const dateWithCurrentTime = moment(`2018-09-30 ${currentTime}`); // 2018-09-30 20:39:52