如何使用时刻将日期转换为另一种格式?

问题描述:

我想我的日期转换为使用momentlib 我试图像其他格式,但没有得到预期的输出如何使用时刻将日期转换为另一种格式?

这里是我的代码

https://jsbin.com/kowuzaraju/edit?html,js,output

var date ="24 May 2017, 05:35"; 

//expected date using moment 
var expectedDate="May 24, 2017, 05.35AM IST" 
var a = moment(date,'mmm dd, yyyy hh:mm') 
var b = moment(date).format('mmm dd, yyyy hh:mm') 

//alert(a) 
//alert('b') 

VAR expectedDate =” 2017年5月24日,05:05AM IST“

+0

'format'没有一个最后的'e',但除此之外,我不熟悉足够的时间,以进一步帮助你。 – Santi

+0

请参阅片刻['format()'](http://momentjs.com/docs/#/displaying/format/),令牌区分大小写。 – VincenzoC

首先,您必须解析你的输入字符串使用moment(String, String)方法。在你的情况下,你可以使用'DD MMM YYYY, HH:mm'作为第二个参数(DD一个月中的某天,MMM个月的名称,YYYY年,HH 0-23小时,mm分钟)。

然后,您可以使用format()以所需的格式显示时刻对象。

这里工作示例:

var date ="24 May 2017, 05:35"; 
 
//var expectedDate="May 24, 2017, 05.35AM IST" 
 
var a = moment(date,'DD MMM YYYY, HH:mm') 
 
var b = a.format('MMM DD, YYYY, hh.mmA') 
 
console.log(b);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

需要注意的是,默认情况下,时刻解析时间在本地时间,你有,如果你要带之间转换使用用途moment-timezone。如果你想显示IST可以使用z令牌里面format(),因为医生说:

注:为1.6.0,在z/ZZ格式标记已经从普通的时刻对象过时。 Read more about it here.但是,他们工作,如果您正在使用时区时区插件的特定时区。

这里使用一个样本矩时区:

var date ="24 May 2017, 05:35"; 
 
// Parse input specifying Asia/Kolkata timezone 
 
var a = moment.tz(date, 'DD MMM YYYY, HH:mm', 'Asia/Kolkata'); 
 
// Format moment uzing z to show the timezone 
 
var b = a.format('MMM DD, YYYY, hh.mmA z') 
 
console.log(b);
<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.13/moment-timezone-with-data-2012-2022.min.js"></script>