HTML 日期:在 yyyy - mm - dd 中获取正确的日期
HTML Date : Get Correct date in yyyy - mm - dd
我正在使用HTML日期函数和javascript在YYYY-mm-dd中获取确切的日期。 除了每月的第一天外,它对我来说工作正常。例如:2016 年 2 月 1 日转换为 2016-01-32
function mydate1(cachedDate) {
var today = new Date();
console.log(today);
if (cachedDate === undefined) {
console.log("no cached value found");
var d = new Date(document.getElementById("dt").value);
sessionStorage.setItem('dateCached', document.getElementById("dt").value);
console.log(d);
//sessionStorage.setItem('dropdownCached',document.getElementById("s1").value);
console.log("set session value :" + sessionStorage.getItem('dateCached'));
} else {
var d = new Date(cachedDate);
console.log(document.getElementById("dt").value);
sessionStorage.setItem('dateCached', d);
console.log("set session value :" + sessionStorage.getItem('dateCached'));
}
if (today < d) {
alert("No Record Found ..... ");
return;
}
dt = d.getDate();
dt++
dt = ('0' + dt).slice(-2);
mn = d.getMonth();
mn++;
mn = ('0' + mn).slice(-2);
yy = d.getFullYear();
var x = yy + "-" + mn + "-" + dt;
document.getElementById("ndt").value = dt;
ajaxFunction('dt');
console.log(x);
}
<input type="date" class="form-control" id="dt" onchange="mydate1();" />
<input type="text" id="ndt"/>
我尝试了谷歌的几个解决方案,但没有什么对我有用..有人可以帮助我修复脚本。
首先,你不需要递增返回的值 getDate()
,因为
getDate()
返回的值是介于 1 和 31 之间的整数。
这与getMonth()
形成鲜明对比,其中
getMonth()
返回的值是介于 0 和 11 之间的整数。
其次,您可以在构造新的Date
对象时尝试指定时区:
var d = new Date(document.getElementById("dt").value + "(GMT)");
Date.parse()
方法依赖于实现,因此在分析日期字符串时可能会遇到不一致的情况。在我的浏览器 (Chrome 47) 中,如果要解析的字符串末尾包含一个空格,我会看到不同的Date
对象:
d = new Date("2016-02-01")
Sun Jan 31 2016 17:00:00 GMT-0700 (Mountain Standard Time)
d = new Date("2016-02-01 ")
Mon Feb 01 2016 00:00:00 GMT-0700 (Mountain Standard Time)
虽然我无法在上面的代码中找到确切的错误....但我设法部分解决了这个问题(需要添加代码来验证第> 12 月份并在需要时更改年份)
dt = d.getDate();
dt++
dt = ('0' + dt).slice(-2);
mn = d.getMonth();
mn++;
mn = ('0' + mn).slice(-2);
yy = d.getFullYear();
var x = yy + "-" + mn + "-" + dt;
var y = new Date(yy, mn, 0);
dd = y.getDate();
if (dd < dt) {
console.log("in test.....");
mn++;
mn = ('0' + mn).slice(-2);
var x = yy + "-" + mn + "-" + '01';
console.log("test" + x);
}
相关文章:
- 如何从Angularjs中的新日期获取日期格式
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从javascript中的日期获取月份号
- 从datetimepicker引导程序上点击的日期获取点击事件
- 如何在JS中从Y-m-d日期获取unix时间戳
- 从getTime()类型的日期获取日期和时间,以显示mySQL数据库中的日期
- 使用 Jquery 从日期获取星期几
- 如何在没有周末的情况下添加天数以从当前日期获取下一个日期
- 从服务器返回的日期获取星期几
- 如何使用 momentjs 从日期获取日期名称
- 时刻.js从日期获取日期名称
- 我想在 JavaScript 中使用日期函数将日期获取为 9 月 8 日星期日上午 11:46
- 从当前日期获取GMT字符串
- 为什么angularjs摘要使用日期获取函数进入无限循环
- 从格式化日期获取UTC时间戳-javascript
- 如何在codebehind中为Datepicker设置日期/获取日期
- 如何在asp.net/c#中从两个开始和结束自定义日期获取周数
- 从给定的开始日期获取结束日期
- 在javascript中使用当前日期获取两周日期
- 日期获取自定义周开始日的周数