我收到一个带有不想要的日期格式的字段的查询(2013 年 2 月 21 日星期四 00:00:00 EST 2013)有没有办法将其修改为 mm-dd-yyy?
我正在使用 javascript,我找到了一种 php 方式来执行此操作,但遗憾的是它必须使用 javascript,因此指令必须与 TOAD 中的指令几乎相同。
我尝试了 CONVERT() 方法,但它不起作用。我不确定我是否正确使用它
我收到一个带有不想要的日期格式的字段的查询(2013 年 2 月 21 日星期四 00:00:00 EST 2013)有没有办法将其修改为 mm-dd-yyy?
我正在使用 javascript,我找到了一种 php 方式来执行此操作,但遗憾的是它必须使用 javascript,因此指令必须与 TOAD 中的指令几乎相同。
我尝试了 CONVERT() 方法,但它不起作用。我不确定我是否正确使用它
Convert() 函数将起作用,但您需要使用此处的正确格式代码: SQL Convert() 函数。
SELECT Convert(char(10), @date, 110)
Date.js对于日期格式非常方便。
您可以使用 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;
那里的时间和时区值也可用。
您可能可以尝试转换为 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
输出格式 (mm-dd-yyyy) 不明确,请考虑使用 21-Feb-2013 之类的格式或 ISO8601 (2013-02-21) 之类的标准格式。
如果您需要考虑时区,创建日期对象,添加偏移量,然后取回新日期会更容易。但是,您还需要弄清楚如何将字符串时区转换为可与日期一起使用的数字(最好是分钟,但小时也可以)。