我正在尝试使用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”
答案 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>