我已经看过几篇关于这个的帖子,但没有我从中学到的。
我需要向REST API发送一个特定的日期时间戳,它需要如下所示:
2014-01-17 00:00:00.000
所以我需要两个,一个是当前几个月的第一天,以及当前几个月的最后一天,所以这样的事情:
2014-02-01 00:00:00.000
2014-02-28 00:00:00.000
我使用了以下代码:
var date = new Date(),
y = date.getFullYear(),
m = date.getMonth(),
firstDay = new Date(y, m, 1),
lastDay = new Date(y, m + 1, 0),
querydate = '"_createdAt" : {"$gt" : "' +
y + '-' + m + '-' + firstDay + ' 00:00:00.000" , "$lt" : "' +
y + '-' + m + '-' + lastDay + ' 00:00:00.000"}';
但这是我通过浏览器上的dev模式获得的输出:
"_createdAt" : {"$gt" : "2014-1-Sat Feb 01 2014 00:00:00 GMT+0000 (GMT) 00:00:00.000" , "$lt" : "2014-1-Fri Feb 28 2014 00:00:00 GMT+0000 (GMT) 00:00:00.000"}}
正如你所看到的那样,它给了我正确的年份,但是月份必须是两位数,而在最后一天和第一天,它给出了完整的日期。
我有什么想法可以解决这个问题?
答案 0 :(得分:1)
对于javascript中的日期时间,我更喜欢使用moment.js;一个小型图书馆,可用于显示和计算日期时间。
你要做的事情看起来像这样:
moment("2014-05-15 22:15:01").format("YYYY-MM-DD HH:mm:ss") // "2014-05-15, 22:15:01"
答案 1 :(得分:1)
现在看到与其他帖子的相似度?
的Javascript
function padLeft(arg) {
if (arg < 10) {
arg = '0' + arg;
}
return arg;
}
function myFormat(dateObject) {
return [
dateObject.getFullYear(),
padLeft(dateObject.getMonth() + 1),
padLeft(dateObject.getDate())
].join('-') + ' 00:00:00.000';
}
var date = new Date(),
y = date.getFullYear(),
m = date.getMonth(),
firstDay = new Date(y, m, 1),
lastDay = new Date(y, m + 1, 0),
querydate = '"_createdAt" : {"$gt" : "' +
myFormat(firstDay) + ' , "$lt" : "' +
myFormat(lastDay) + '"}';
console.log(querydate);
输出
"_createdAt" : {"$gt" : "2014-02-01 00:00:00.000 , "$lt" : "2014-02-28 00:00:00.000"}
上
答案 2 :(得分:0)
var date = new Date(),
y = date.getFullYear(),
m = date.getMonth()
var firstDay = new Date(y, m, 1).getDate() ;
var lastDay = new Date(y, m + 1, 0).getDate()
var querydate = '"_createdAt" : {"$gt" : "'+y+'-'+m+'-'+firstDay+' 00:00:00.000" , "$lt" : "'+y+'-'+m+'-'+lastDay+' 00:00:00.000"}';
答案 3 :(得分:0)
var getTimeStamp = function() {
var tStamp;
var cd = new Date();
if ( (cd.getMonth() + 1) < 10 )
var tStamp = ( cd.getFullYear() + "-0" + (cd.getMonth() + 1) + "-" + cd.getDate() + " 00:00:00.000");
else
var tStamp = ( cd.getFullYear() + "-" + (cd.getMonth() + 1) + "-" + cd.getDate() + " 00:00:00.000");
return tStamp;
}