我正在尝试将毫秒转换为我想要的日期格式。但是我给这个函数的格式似乎不起作用。
在我的地图功能
中var date = new Date(item.showTime);
var dateString = date.toString('MM/dd/yy HH:mm:ss');
emit([doc.vehicleNumber,doc.advertId],{"seatNumber":item.seatNumber,"showTime":dateString ,"skipTime":item.skipTime});
});
结果是
{seatNumber: 2, showTime: "Tue Nov 21 2017 10:08:56 GMT+0000 (UTC)", skipTime: 0}
我需要以 10/12/2017 10:08:56 的格式显示时间..我不知道为什么这不起作用。
顺便说一下这不是javascript,我认为这是关于couchdb所以请做 不要将此标记为与其他JS问题重复。
答案 0 :(得分:2)
CouchDB支持在map函数定义中使用CommonJS Modules。 http://docs.couchdb.org/en/2.1.1/query-server/javascript.html#commonjs
问题是模块应该在设计文档中定义,不能从外部资源加载。
您可以在map函数中使用标准的JavaScript内置对象和函数,因为couchjs基于Mozilla的SpiderMonkey JS解释器。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
CouchDB JS运行时没有基本支持来进行日期格式化。你应该为此目的编写自己的逻辑。
如果这对您来说是一个大问题,您可能会尝试破解/path/to/couchdb/share/server/main.js文件,该文件设置了您的函数的执行上下文,但我不知道看得太多值得推荐。
答案 1 :(得分:0)
解析日期并自行格式化。这并不难。
var date = new Date(Date.parse(item.showTime));
var timestring = "" + date.getMonth() + "/" + date.getDate() + "/" +
date.getFullYear() + " " + date.toTimeString().substr(0,8)
答案 2 :(得分:-1)
这非常关于JavaScript。 .toString()方法不接受任何格式化参数。您可以编写自己的函数来转换输出,也可以使用a library that does what you want.