这在客户端完全正常,首先:
var timeOfMessageSent = new Date();
console.log(timeOfMessageSent); // Mon May 22 2017 14:03:13 GMT+0200 (Romance Summer Time)
var day = timeOfMessageSent.getDay(); // 1
console.log("this is the day: ",day);
但是,在将日期发送到服务器,然后将其发送回客户端后,它不起作用。
现在日期显示如下:2017-05-22T12:03:13.437Z
我猜这就是为什么getDate不起作用的原因。
如何确保日期首先显示?例如2017-05-22T12:03:13.437Z
答案 0 :(得分:1)
服务器似乎将日期作为ISO字符串返回。您必须从此字符串创建一个新的Date
实例。
通常不鼓励使用字符串来创建日期对象,但ISO日期字符串是标准的,也是最安全的日期字符串格式,用于初始化日期对象。
Javascript日期对象不属于JSON的一部分,因此需要将其转换为字符串或数字才能通过JSON API传输。这就是服务器返回日期的ISO字符串表示的原因
JSON API常用的ISO字符串的替代方法是将日期转换为表示日期毫秒的数字。可以使用日期构造函数将两个变量转换回Javascript日期对象:new Date(dateValue)
答案 1 :(得分:1)
将您的服务器日期字符串设为日期对象。
var timeOfMessageSent = new Date();
console.log(timeOfMessageSent); // Mon May 22 2017 14:03:13 GMT+0200 (Romance Summer Time)
var day = timeOfMessageSent.getDay(); // 1
console.log("this is the day: ",day);
var newDate = new Date("2017-05-25T12:19:55.982Z"); // give your server date and return as date object
var newDay = newDate.getDay();
console.log("this is the new day: ", newDay);
答案 2 :(得分:0)
您可以使用moment.js将您获得的ISO字符串修改为您的偏好。使用该库,您可以根据需要显示日期。