我需要从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文档告诉我的。
谢谢,
答案 0 :(得分:84)
StartDate = moment(StartDate).format('MM-YYYY');
...和MySQL日期格式:
StartDate = moment(StartDate).format('YYYY-MM-DD');
答案 1 :(得分:54)
我认为你在格式字符串中只有不正确的大小写。根据文档,这应该适合您:MM/DD/YYYY
答案 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>
(或您想要的任何其他格式)