Javascript 有没有办法格式化查询中字段的日期?
我收到一个查询,其中字段的日期格式不符合要求(美国东部时间2013年2月21日星期四00:00:00) 有没有办法将其修改为mm dd yyy 我正在使用javascript,我找到了一种php方法来实现它,但遗憾的是它必须是javascript,所以指令必须与TOAD中的指令几乎相同 我尝试了CONVERT()方法,但没有成功。我不确定我是否正确使用了它,尽管对于日期格式来说非常方便。Convert()函数可以工作,但是您需要从这里使用正确的格式代码:Javascript 有没有办法格式化查询中字段的日期?,javascript,sql,date,format,Javascript,Sql,Date,Format,我收到一个查询,其中字段的日期格式不符合要求(美国东部时间2013年2月21日星期四00:00:00) 有没有办法将其修改为mm dd yyy 我正在使用javascript,我找到了一种php方法来实现它,但遗憾的是它必须是javascript,所以指令必须与TOAD中的指令几乎相同 我尝试了CONVERT()方法,但没有成功。我不确定我是否正确使用了它,尽管对于日期格式来说非常方便。Convert()函数可以工作,但是您需要从这里使用正确的格式代码: JS中有一些基本的日期对象函数可以使用
JS中有一些基本的日期对象函数可以使用 首先,创建日期变量:
var date = new Date('your date value');
然后,您可以访问各个日期:
var month = date.getMonth() + 1; //gets the month . . . it's 0-based, so add 1
var day = date.getDate(); //gets the day of the month
var year = date.getFullYear(); //gets the 4-digit year
一旦你有了这些值,你就可以用你想要的任何格式连接它们。对于基本的mm dd yyyy,请使用:
var formattedDate = month + "-" + day + "-" + year;
这些时间和时区值也可用。您可能可以尝试转换为unix时间戳,然后格式化。我还没有测试过这个,它可能会抛出一个错误,但你明白了
var input = your date;
input = input.split(" - ").map(function (date){
return Date.parse(date+"-0500")/1000;
}).join(" - ");
var year = input.getYear();
var month = input.getMonth();
var day = input.getDay();
var hours = input.getHours();
var minutes = input.getMinutes();
var seconds = input.getSeconds();
var formatted = month + " " + day + ", " + year + " at " hours + ':' + minutes + ':' + seconds;
那是一种严重混淆的格式。有两种修改它的基本方法,一种是对已有的位重新排序,另一种是将其转换为日期对象并使用它创建新字符串。不管怎样,您都没有说过如何处理时区偏移 为时区使用缩写或名称是不明确的,没有标准,有些是重复的(EST用于三个不同的时区)。在任何情况下,简单的重新订购可以是:
function formatDate(s) {
var months = {jan:'01', feb:'02', mar:'03', apr:'04',
may:'05', jun:'06', jul:'07', aug:'08',
sep:'09', oct:'10', nov:'11', dec:'12'};
var s = s.split(' ');
var d = (s[2] < 10? '0' : '') + s[2];
return months[s[1].toLowerCase()] + '-' + d + '-' + s[5];
}
alert(formatDate('Thu Feb 21 00:00:00 EST 2013')); // 02-21-2013
函数格式日期{
变量月份={1月:'01',2月:'02',3月:'03',4月:'04',
五月五日,六月六日,七月七日,八月八日,
九月:'09',十月:'10',十一月:'11',十二月:'12'};
var s=s.分割(“”);
变量d=(s[2]<10?'0':'')+s[2];
返回月份[s[1]。toLowerCase()]+'-'+d+'-'+s[5];
}
警报(格式日期('Thu Feb 21 00:00:00 EST 2013');//02-21-2013
输出格式(mm DD yyyy)是不明确的,考虑使用诸如211-FEB-2013或标准格式如ISO8601(2013-02-21)。
如果您需要考虑时区,则创建日期对象、添加偏移量、然后返回新日期将更容易。但是,您还需要解决如何将字符串时区转换为可与日期一起使用的数字(最好是分钟,但可以是小时)。
3位数年份?真奇怪。这是历史数据库吗?无论如何,请参见Javascript日期方法getDate
、getMonth
和getYear
。请参见
function formatDate(s) {
var months = {jan:'01', feb:'02', mar:'03', apr:'04',
may:'05', jun:'06', jul:'07', aug:'08',
sep:'09', oct:'10', nov:'11', dec:'12'};
var s = s.split(' ');
var d = (s[2] < 10? '0' : '') + s[2];
return months[s[1].toLowerCase()] + '-' + d + '-' + s[5];
}
alert(formatDate('Thu Feb 21 00:00:00 EST 2013')); // 02-21-2013