我尝试使用Jquery从输入类型= datetime-local解析值。我知道为什么,但当我告诉它解析一个变量时它会给我一个NaN。
$_GET['count']
我的输出是
123213-03-12T12:12
的NaN
有什么问题?
2)我的期望输出是 的 YYYYMMDDHHMMSS
我怎么能有这个?
答案 0 :(得分:4)
这可能是因为123213-03-12T12:12
不是有效的日期格式。如果Date.parse()
无法识别日期字符串或者日期无效,NaN
将返回NaN
。在您的情况下,它似乎是无效的日期格式。
...
List<String> exeParallel(int start, int end){ List<String> people = new ArrayList<String>(); byte maxthreads; int cores = Runtime.getRuntime().availableProcessors(); maxthreads = (byte) ((cores > 2)?cores-1:1); ExecutorService executor = Executors.newFixedThreadPool(maxthreads); for(Long i= start; i <= end; i++ ){ Callable<ServiceResponse> callTask = getTask(i); Future<ServiceResponse> future = executor.submit(callTask); if(future != null){ String result = .....; people.add(result); } } private Callable<ServiceResponse> getTask(int num){ return new Callable<ServiceResponse>(){ @Override public ServiceResponsecall() throws Exception { ServiceRestClient serviceRestClient =ServiceRestClient.getInstance(); return serviceRestClient.callservice(num); } }; }
如果字符串无法识别,或者在某些情况下包含非法日期值(例如2015-02-31)。< / p>
答案 1 :(得分:2)
在您的情况下,给定日期无效。
如果您想要输出,请回答您的问题:yyyymmddhhmmss
您必须使用dateFormat
使用dateFormat的示例代码:
var a = $(this).val();
var dateFormat = require('dateformat');
var yourdate = new Date(a);
dateFormat(yourdate, "yyyy mm dd hh:mm:ss");
另一种可能的方法是使用moment.js这是一个完整的库,可以格式化日期并用它们做很多事情。你可以看看他们的文档,它是完全详细的。
修改强>
如果使用图书馆真的困扰你,那么你可以在没有图书馆的情况下做到这一点。 (脏但有效...)
var str = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
答案 2 :(得分:1)