2017-09-04 53 views
-2

我从MySQL数据库字段获得了该值:“9月9日@ 08:00 - 17:00”。 我可以将此客户端更改为9月9日?我尝试过使用JavaScript,但我并没有接近。从数据库客户端更改文本

日期可能会更改。

期望的结果在浏览器中:9月9日

谢谢

+2

'我试着用JavaScript'我们可以看到你什么索引树d? – fvu

+0

你确定从mysqldb'“9月9日@ 08:00 - 17:00”获得格式吗'' – prasanth

+0

@fvu 我会在今天晚上上当家。不要指望太多:) – user6079228

回答

0

这对来自数据库的日期时间值相当少见的输出。一个解决方案是@字符之后简单地去除所有文字 - 如果你确定输出格式保持原样是:

var datetime = 'september 9 @ 19:20 - 20:00'; 
 
var result = datetime.substr(0, datetime.indexOf('@')).trim(); 
 

 
console.log(result); // outputs 'september 9' 
 

 
var date = new Date(result); 
 
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 
 

 
console.log(date.getDate(), months[date.getMonth()]); // outputs '9 September'

+0

嗨Jason K, 谢谢你的回应。是的,它是一个nvarchar字段中的字符串。 但它是:9月9日@ 08:00 - 17:00 如何使用代码切换日期和月份? – user6079228

+0

嗨thx,但那不是我正在寻找的笏。该字段的价值可能会激化,您不必将其视为日期。我只想打败前两个字。 – user6079228

+0

第二个输出是Safari中的'NaN undefined'。请参阅[*为什么Date.parse提供不正确的结果?](https://stackoverflow.com/questions/2587345/why-does-date-parse-give-incorrect-results) – RobG

0

你想要的值是字符串,所以只是重新格式化它:

var s = 'September 9 @ 08:00 - 17:00'; 
 
var b = s.split(' '); 
 
console.log(b[1] + ' ' + b[0]); 
 

 
// You could even do 
 
console.log(s.replace(/(\w+) (\d+)(.*)/, '$2 $1')); 
 

 
// Or if you want to just swap the month and day and keep the rest 
 
console.log(s.replace(/(\w+) (\d+)/, '$2 $1'));