如何在我的情况下设置日期格式
How to setup the date format in my case
我正在尝试将http请求数据转换为所需的正确日期格式。
我从一家公司的http请求数据返回类似的数据
2015-03-11, 2015-05-13, 2015-11-21...etc.
我的密码。
var day1 = '2015-03-11'; //return from http request
var day2 = '2015-05-13'; //return from http request
var date = new Date(day1) ->
//time will be off 1 day for some reason
//because javascript can't recognize 03 and it is a string.`
我需要能够将2015-03-11
转换为March, 11, 2015
。有什么正确的方法来解决这个问题吗?
非常感谢!
问题源于JavaScript日期实例包含一天中的时间部分,以及像您这样的ISO日期被解释为UTC的相关事实。如果您在西欧西部,那么您的计算机所在的时区会使2015年3月11日的UTC午夜成为您所在时区2015年3月份10日的某个时间。
有几种方法可以解决这个问题;这里有一个:
var utcdate = new Date("2015-03-11");
var local = new Date(utcdate.getUTCFullYear(), utcdate.getUTCMonth(), utcdate.getUTCDate());
这将使"本地"日期与指示的原始日期字符串相同。
正如链接重复问题的答案中所提到的,您还可以在实例化日期之前操作日期字符串。最好的是确保您的服务器生成格式良好的日期。
修订为用斜杠替换ISO格式的破折号:
var day1 = '2015-03-31'; //return from http request
var day2 = '2015-05-13'; //return from http request
function getDateFormat(day)
{
var date = new Date(day.replace(/-/g, '/'));
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var dateString = monthNames[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();
alert(dateString);//just to test
}
getDateFormat(day1);
getDateFormat(day2);
如果你只想显示月份、日期和年份的名称,那么这就可以了。
已更新以将其放入函数中。
去掉多余的"0"怎么样?
var date = new Date(day1.replace('-0', '-'));
相关文章:
- 在输入类型日期中设置日期
- 在达到状态之前在Redux Reducer中设置日期格式
- Javascript设置日期不起作用,显示错误的时间
- 如何在我的情况下设置日期格式
- 时间戳日期&时间格式-应用程序脚本-设置日期和时间格式
- 引导日期选取器在显示时与在值上设置日期的格式不同
- 设置日期变量的格式
- Java 脚本 设置日期的最小值和最大值属性
- Javascript Date - 只设置日期,忽略时间
- 使用angular-moment.js设置日期格式
- Moment会在设置日期时自动更正无效日期
- Moment.js:根据浏览器语言设置日期格式
- 以给定的精度设置日期格式
- 使用即时Angularjs设置日期格式
- 使用DateAdd()在Javascript/Classic ASP中设置日期格式
- 从 UTC 字符串设置日期格式
- 如何设置日期滑块的选定范围的最小值
- 以角度格式设置日期格式
- 以角度设置日期格式
- 在 JavaScript 中设置日期时间顺序