我有一个数组列表myData,它具有这样的值
[20-01-2018,10-01-2018, 20-02-2018, TASk2, 11-02-2018, 21-03-2018, TASK3, 15-03-2018, 19-04-2018]
am将该值分配给javascript变量
var start = new Date(<%=myData.get(1)%>);
alert(start)
的输出为
Thu Jan 01 1970 05:29:57 GMT+0530 (India Standard Time)
但是当我打印myData.get(1)
时给出
10-01-2018
我希望开始变量仅保留日期值10-01-2018
谁能告诉我我哪里错了。
我做了以下修改。添加了一个Java脚本函数来格式化日期 按我的要求退回。
步骤。 1迭代数组列表 2.将值作为参数分配给Java脚本函数以对其进行格式化
start = formatMyDate('<%= pertData.get(loopcount + 1)%>');
end = formatMyDate('<%= pertData.get(loopcount + 2)');
function formatMyDate(myday)
{
alert("entered value"+myday);
var tday = new Date(myday);
alert("processing on value"+tday);
alert(typeof tday);
var dd = tday.getDate();
var mm = tday.getMonth()+1; //January is 0!
var yyyy = tday.getFullYear();
if(dd<10){
dd='0'+dd;
}
if(mm<10){
mm='0'+mm;
}
var ret = dd+'/'+mm+'/'+yyyy;
alert("left value"+ret);
return ret;
}
现在,对于某些值它可以工作,而对于某些值则不起作用,并且给出无效的日期
运行JScript后的示例输出
输入值20-02-2018 在valueInvalid日期上处理
答案 0 :(得分:0)
简单地说:
const start = myData.get(1);
或
const start = myData[1];
?
答案 1 :(得分:0)
问题是调用时输入的字符串格式不正确
var tday = new Date(myday);
请查看此page。在那里,您可以看到字符串必须具有哪种格式才能接收有效的日期对象。在您的情况下,这意味着使用new Date()
在此转换过程中推送字符串是没有用的。最好直接获取您的年,月和日:
let start = myData[1];
const dd = start.substring(0,2);
const mm = start.substring(3,5);
const yyyy = start.substring(6,10);
const ret = dd+'/'+mm+'/'+yyyy;
alert("left value: " + ret);
return ret;