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

时间:2017-05-25 16:59:15

标签: javascript jquery momentjs

我正在尝试使用moment lib将我的日期转换为其他格式 我试过这样但没有得到预期的输出

这是我的代码

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.35AM IST”

1 个答案:

答案 0 :(得分:0)

首先,您必须使用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会以本地时间分析时间,如果必须在区域之间进行转换,则必须使用moment-timezone。如果您想显示IST,可以使用z内的format()令牌,正如文档所说:

  

注意:从1.6.0开始,z / zz格式标记已从普通时刻对象中弃用。 Read more about it here.但是,如果您使用带有moment-timezone插件的特定时区,他们执行工作。

这是一个使用时刻时区的示例:

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>