我的日期格式如下:
12/11/2015 07:12 PM
在jQuery中我正在做:
var parsedDate2 = new Date(date);
alert(parsedDate2);
这打印了我:
Fri Dec 11 2015 07:12:00 GMT+0100 (Central European Standard Time)
并且几乎正常,主要是因为在我的示例中(12/11/2015 07:12 PM
),格式为DD/MM
而不是MM/DD
。但是,jQuery将它视为月份第一。这是一个问题,因为当我选择输入时:
19/11/2015 07:17 PM <--- (19th of November)
我得到了:
Invalid date
那么如何在月份前一天设置正确的格式呢?
答案 0 :(得分:1)
认为你应该使用更专业和更专注的库以及JQuery,对我来说最好的是Moment.js - 它具有日期时间解析和格式化所需的全部而且不需要其他的东西
此外,还有一些其他选择,例如date.js
和globalize.js
答案 1 :(得分:1)
丑陋,但只有JS才有效:
a = "12/11/2015 07:12 PM";
b = a.split(' ');
c = b[0].split('/');
bad = new Date(a);
alert('bad : '+bad);
good = new Date(c[1]+'/'+c[0]+'/'+c[2]+' '+b[1]+' '+b[2]);
alert('good : '+good);
另一种方法是使用Moment.js parsing tool
答案 2 :(得分:0)
它的形式为<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-2.0.2.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.js"></script>
<script>
var availableAttributes = [ "account_address", "account_address_city", "account_address_country", "account_address_state", "account_address_street1", "account_address_street2", "account_address_zip", "account_email", "account_login", "account_name", "account_number", "account_telephone"];
$(document).ready(function() {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e) { //on add input button click
e.preventDefault();
if (x < max_fields) { //max input box allowed
x++; //text box increment
// $(wrapper).append('<div><input id="' + x + '" type="text" name="mytext"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
$(wrapper).append('<div>' + '<input id="' + x + '" type="text" name="mytext"><br>' + '<textarea name="desc[]"></textarea>' + '<a href="#" class="remove_field">Remove</a>' +'</div>');
$("input[id=" + x + "]").autocomplete({
source: availableAttributes
});
}
});
$(wrapper).on("click", ".remove_field", function(e) { //user click on remove text
e.preventDefault();
$(this).parent('div').remove();
x--;
})
});
// autocomplete enablement
$(function() {
$("input[name^='mytext']").autocomplete({
source: availableAttributes
});
});
</script>
</head>
<body>
<div class="input_fields_wrap">
<button class="add_field_button">Add More Fields</button>
<div><input type="text" name="mytext[]"></div>
<textarea name="desc[]"></textarea>
</div>
</body>
</html>
。试试mm/dd/yyyy
。遗憾的是,jQuery不知道你正在使用哪种格式,因此使用了聋人。
答案 3 :(得分:0)
不幸的是,在添加日期格式时,Javascript Date系统并不具有可塑性。 Here是Mozilla的参考。我认为wierdpanda有正确的想法,写一个接受你的日期格式的函数,在将它提供给new Date()
之前重新格式化它,然后返回结果。用这个替代new Date()
所在地,一切都应该好。