如何使用javascript格式化从表单字段中提取的日期
How to format a date pulled from a form field with javascript
我有一个日期选择器,它在表单字段中生成一个日期,如2012年6月30日。
我需要将此日期转换为mysql的2012-06-30。我可以通过以下内容来接近它。
var datePart=document.getElementById('formdate').value.split(/[^0-9]+/);
然后使用生成日期。
datePart2[2] + "-" + datePart2[1] + "-" + datePart2[0]
问题是它给我的日期是2012-6-30,而不是2012-06-30。
有更简单的方法吗?或者使用我当前的方法,如果数字是个位数,在数字前面加一个零?
开源日期.js(http://www.datejs.com/)为JavaScript日期提供了一个非常广泛的框架,IMHO优于jQuery插件。它可能超出了您的需求,但我认为它是任何JavaScript程序员武器库中的一个受欢迎的补充。
格式化示例:
var mySqlDate = Date.parse('6/30/2012').toString('yyyy-MM-dd');
您在使用jQuery吗?如果是这样的话,你可以使用日期格式插件,使日期操作变得容易
http://archive.plugins.jquery.com/project/jquery-dateFormat
试试这个,希望能有所帮助:
在jquery中设置日期格式-从2012年3月3日星期六14:16:05 GMT+0530到2012年03月3日
重要的是,你需要设置一个像这样的检查条件,如果它小于10,则附加0[code]date<10?"0"+日期:日期;干杯
这条线上的东西:
function dateFormatFoo(){
var d = new Date();
date = d.getDate();
date = date < 10 ? "0"+date : date;
mon = d.getMonth()+1;
mon = mon < 10 ? "0"+mon : mon;
year = d.getFullYear()
return (date+"/"+mon+"/"+year);
}
根据您的示例,一个简单的函数是:
var formatUStoISOdate = (function() {
function aZ(n) {
return (n<10? '0' : '') + n;
}
var re = /[^0-9]/;
return function(d) {
var d = d.split(re);
return d[2] + '-' + aZ(d[0]) + '-' + aZ(d[1]);
// or
// return [d[2], aZ(d[0]), aZ(d[1])].join('-');
}
}());
alert(formatUStoISOdate('3/31/2011')); // 2011-03-31
相关文章:
- 正在从字符串中提取日期
- 如何从datetime json中提取日期
- Javascript从某些元素中提取日期与匹配和正则表达式返回空数组
- 如何仅从时刻对象中提取日期
- 从客户端的 mongo _id 中提取日期
- 如何在 javascript 中使用正则表达式从字符串中提取日期值
- 在javascript中从datetime中提取日期
- 如何从特定日期中提取日期
- 从JavaScriptDate对象中提取日期字符串,而不应用时区
- 从JS中的字符串中提取日期
- 使用jQuery从字符串中提取日期和时间
- 使用正则表达式,Javascript中还有其他方法从具有时区的字符串中提取日期吗?
- 如何通过jquery或javascript从日期字符串提取日期格式
- Javascript从变量中提取日期
- 从日期字符串中提取日期(1或2位数)、月(1或2位数)和年(2或4位数)(用于不同的模式)
- 如何在JavaScript中只提取日期
- 在javascript中从url提取日期
- 从字符串中提取日期部分
- 我如何提取日期和时间从php变量在javascript
- 从字符串中提取日期