javascript - 如何使用 moment.js 从 mongoDB 获取日期并显示它?

标签 javascript mongodb date momentjs utc

我有一个表单,用户可以按以下格式输入日期:YYYY-MM-DD

我将日期存储在 Mongo DB 中。默认情况下,Mongo DB 将其存储为 UTC 日期。

示例: 用户输入 2018-02-06 Mongo 商店:“2018 年 2 月 6 日星期二 00:00:00 GMT+0000 (UTC)”

假设我想向用户显示此日期。

以下代码给出了错误的日期:

var eventDateString = $('#hiddenDate').val() // Just gets the date as stored in mongo
var dateObj = new Date(eventDateString)
var dateMom = moment(dateObj).format('dddd, MMMM DD YYYY');
console.log(dateMom)

打印的内容是: “2018 年 2 月 5 日星期一” 这是不正确的,日期应该是 2 月 6 日。

为什么会发生这种情况?

我试图通过这样做来解决这个问题:

var eventDateString = $('#hiddenDate').val();
$('#show-eventDate').text(moment.utc(eventDateString).format('dddd, MMMM DD YYYY'));

我得到了正确的结果:“2018 年 2 月 6 日星期二”

但是,我收到以下警告:

enter image description here

(弃用警告:提供的值不是可识别的 ISO 格式。moment 构造回退到 js Date(),这在所有浏览器和版本中并不可靠。不鼓励非 ISO 日期格式并将被删除在即将发布的主要版本中。请参阅 http://momentjs.com/guides/#/warnings/js-date/ 了解更多信息...)

如何解决这个问题?

最佳答案

你已经非常接近解决方案了,你必须使用 moment.utc告诉时刻您的输入是 UTC 并传递 format避免弃用警告的参数。

代码示例:

var eventDateString = $('#hiddenDate').val();
var mom = moment.utc(eventDateString, 'ddd MMM DD YYYY HH:mm:ss ZZ'); 
$('#show-eventDate').text(mom.format('dddd, MMMM DD YYYY'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

<input id="hiddenDate" type="hidden" value="Tue Feb 06 2018 00:00:00 GMT+0000 (UTC)">
<div id="show-eventDate"></div>

关于javascript - 如何使用 moment.js 从 mongoDB 获取日期并显示它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443946/

相关文章:

javascript - 使用 javascript 或 jquery 从保存的 html 中获取与元素相关的 jquery.data()

node.js - 无法在 heroku 上使用 node.js 连接到 mongolab

mongodb - mongo 上的这个 map-reduce 查询有什么问题?

javascript - 通过 mongoose 更新 mongodb 内嵌套数组中的特定值

php - DateTime::createFromFormat 如何捕获特定的日期时间?

mysql - CAST(日期 AS DATE) 日期格式

sql - 日期转换问题。 : yyyy/MM/dd to dd/MM/yyyy

javascript - Yii2:如何在非 restful API 上允许 CORS

javascript - JQGrid 在标题栏中显示过滤器详细信息

java - 查找请求的服务器主机 IP?