我收到一个不受欢迎日期格式的字段的查询(Thu Feb 21 00:00:00 EST 2013) 有没有办法将其修改为mm-dd-yyy?
我正在使用javascript,我找到了一种php方式来做,但遗憾的是它必须是在javascript中,所以指令必须与TOAD中的方式非常相似。
我尝试了CONVERT()方法但它没有用。我不确定我是否正在使用它
答案 0 :(得分:1)
Convert()函数可以使用,但您需要使用正确的格式代码: SQL Convert() Function
SELECT Convert(char(10), @date, 110)
答案 1 :(得分:0)
Date.js对于日期格式化非常方便。
答案 2 :(得分:0)
您可以使用JS中的基本Date对象函数。
首先,创建日期变量:
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;
还有时间和时区值。
答案 3 :(得分:0)
你可能会尝试转换为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;
答案 4 :(得分:0)
这是一种非常混乱的格式。有两种基本方法可以修改它,一种是重新排序你拥有的位,另一种是将它转换为日期对象并使用它来创建新的字符串。无论哪种方式,你都没有说过如何处理时区偏移。
使用时区的缩写或名称是不明确的,它们没有标准,有些是重复的(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
输出格式(mm-dd-yyyy)含糊不清,请考虑使用2013年2月21日或ISO8601(2013-02-21)等标准格式。
如果您需要考虑时区,则可以更轻松地创建日期对象,添加偏移量,然后返回新日期。但是,您还需要弄清楚如何将字符串时区转换为可与日期一起使用的数字(最好是分钟,但小时可以)。