Javascript 有没有办法格式化查询中字段的日期?

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中有一些基本的日期对象函数可以使用

我收到一个查询,其中字段的日期格式不符合要求(美国东部时间2013年2月21日星期四00:00:00) 有没有办法将其修改为mm dd yyy

我正在使用javascript,我找到了一种php方法来实现它,但遗憾的是它必须是javascript,所以指令必须与TOAD中的指令几乎相同

我尝试了CONVERT()方法,但没有成功。我不确定我是否正确使用了它,尽管

对于日期格式来说非常方便。

Convert()函数可以工作,但是您需要从这里使用正确的格式代码:


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