Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期,当月最后一天解析问题_Javascript_Date_Date Formatting - Fatal编程技术网

Javascript日期,当月最后一天解析问题

Javascript日期,当月最后一天解析问题,javascript,date,date-formatting,Javascript,Date,Date Formatting,我看过一些关于这方面的帖子,但没有一篇是我从中学到的 我需要向REST API发送一个特定的日期时间戳,它需要如下所示: moment("2014-05-15 22:15:01").format("YYYY-MM-DD HH:mm:ss") // "2014-05-15, 22:15:01" 2014-01-17 00:00:00.000 所以我需要两个,一个是当前月份的第一天,一个是当前月份的最后一天,所以类似这样: moment("2014-05-15 22:15:01").format(

我看过一些关于这方面的帖子,但没有一篇是我从中学到的

我需要向REST API发送一个特定的日期时间戳,它需要如下所示:

moment("2014-05-15 22:15:01").format("YYYY-MM-DD HH:mm:ss") // "2014-05-15, 22:15:01"
2014-01-17 00:00:00.000

所以我需要两个,一个是当前月份的第一天,一个是当前月份的最后一天,所以类似这样:

moment("2014-05-15 22:15:01").format("YYYY-MM-DD HH:mm:ss") // "2014-05-15, 22:15:01"
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"}';
但这是我通过浏览器上的开发模式获得的输出:

"_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"}}
正如你所看到的,它给出了正确的年份,但月份必须是两位数,最后一天和第一天,它给出了完整的日期

你知道我该怎么办吗

对于javascript中的datetime内容,我更喜欢使用;用于显示和计算日期时间的小型库

您尝试执行的操作如下所示:

moment("2014-05-15 22:15:01").format("YYYY-MM-DD HH:mm:ss") // "2014-05-15, 22:15:01"
var getTimeStamp=function(){
var-tStamp;
var cd=新日期();
如果((cd.getMonth()+1)<10)
var tStamp=(cd.getFullYear()+“-0”+(cd.getMonth()+1)+“-”+cd.getDate()+“00:00:00.000”);
其他的
var tStamp=(cd.getFullYear()+“-”+(cd.getMonth()+1)+“-”+cd.getDate()+“00:00:00.000”);
返回tStamp;
}

现在看到与其他帖子的相似之处了吗

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);

上,我不想在这里讨论过多少次:)@Xotic750您发布的链接没有特别的帮助。您的权利,我应该为他做研究,然后给他一个答案。@Xotic750查看其他帖子,我一次也没有看到我要求的内容。但是请随意发布一个链接来回答这个问题!其中一个格式化日期的示例就是我需要它的外观。但在最后一天我该怎么做呢
lastDay=newdate(y,m+1,0)
,这给了我完整的日期,而不仅仅是日期数字?这是我从上面的代码
“_createdAt”得到的输出:{“$gt”:“2014-1-function getDate(){[本机代码]}00:00.000”,“$lt”:“2014-1-function getDate(){[本机代码]}00:00.000”}
?我想你遗漏了什么。。据我所知,我得到了“_createdAt”:{“$gt”:“2014-1-1 00:00:00.000”,“$lt”:“2014-1-28 00:00:00.000”}是的,谢谢,但我的辩护是,它只有带标签的Javascript,所以很难找到,而且我在任何搜索中都没有看到它。但再次感谢:)我现在已经在这个问题上添加了这些标签,所以应该更容易找到那个标签和其他标签
"_createdAt" : {"$gt" : "2014-02-01 00:00:00.000 , "$lt" : "2014-02-28 00:00:00.000"}