使用moment.js将日期转换为字符串“MM / dd / yyyy”

时间:2013-03-14 14:19:03

标签: javascript jquery momentjs

我需要从jquery datepicker获取日期值,将其转换为字符串格式“MM / dd / yyyy”,以便它可以做正确的ajax帖子。当页面加载或更改datepicker时,会进行jquery ajax调用。

我有这段代码:

var sTimestamp =
moment($("#start_ts").datepicker("getDate")).format("MM/dd/yyyy");

但它并没有把它变成“MM / dd / yyyy”。当我使用小提琴手来检查线下发送的是什么时,这就是身体:

startTimestamp=03%2FTh%2Fyyyy&endTimestamp=03%2FTh%2Fyyyy&pageSize=50&pageNum=0

如果我在fiddler中使用compose并将body更改为:

startTimestamp=03/13/2013&endTimestamp=03/14/2013&pageSize=50&pageNum=0

我得到了正确的答复。所以,我的问题是,是否有办法使用moment.js获取日期对象并将其格式化为字符串“MM / dd / yyyy”?或者从datepicker获取日期的方式有问题吗?

顺便说一句,我假设datepicker.getDate返回一个日期对象,因为这是jQuery文档告诉我的。

谢谢,

6 个答案:

答案 0 :(得分:84)

StartDate = moment(StartDate).format('MM-YYYY');

...和MySQL日期格式:

StartDate = moment(StartDate).format('YYYY-MM-DD');

答案 1 :(得分:54)

我认为你在格式字符串中只有不正确的大小写。根据文档,这应该适合您:MM/DD/YYYY

moment.js documentation

答案 2 :(得分:7)

试试这个:

var momentObj = $("#start_ts").datepicker("getDate");

var yourDate = momentObj.format('L');

答案 3 :(得分:1)

.format('MM/DD/YYYY HH:mm:ss')

答案 4 :(得分:0)

使用:

  

date.format(“ MM / DD / YYYY”)或date.format(“ MM-DD-YYYY”)}

其他受支持的格式以供参考:

月:

  

M 1 2 ... 11 12

     

Mo 1st 2nd ... 11th 12th

     

MM 01 02 ... 11 12

     

MMM 1月2月... 11月12月

     

MMMM 1月2月... 12月11日

日期:

  

d 0 1 ... 5 6

     

0th 1st ... 5th 6th

     

dd Su Mo ... Fr Sa

     

ddd 周日星期一...周五星期六

     

dddd (星期日星期一)...星期五星期六

年份:

  

YY 70 71 ... 29 30

     

YYYY 1970 1971 ... 2029 2030

     

Y 1970 1971 ... 9999 +10000 +10001

答案 5 :(得分:0)

这也可能与使用React的任何人有关-

安装react-moment(npm i react-moment

import Moment from 'react-moment'


<Moment format="MM/DD/YYYY">{yourTimeStamp}</Moment>

(或您想要的任何其他格式)