我使用遗留软件管理格式化为字符串的日期,我希望能够像真正的日期一样使用它。
这
示例:2015年1月1日
到
datefield = 2015-01-01
谢谢
答案 0 :(得分:3)
cazares,您可以尝试使用DateTime类中的createFromFormat方法,看一下这个链接:
http://php.net/manual/en/datetime.createfromformat.php
在您的情况下,您可以像这样使用它:
$dateObj = DateTime::createFromFormat("M j, Y", "Jan 1, 2015");
希望它有所帮助。
答案 1 :(得分:0)
希望这会对你有所帮助。
http://plnkr.co/edit/aLjEGzrD9rPRCHh2KqC6?p=preview
检查控制台。
var dateString = 'Jan 1, 2015';
var arr = dateString.split(/[ ,]/g);
arr = ["Jan", "1", "", "2015"];
arr.splice(2,1);
console.log(arr[0]);
var monthArr = ['Jan', 'Feb', 'March', 'April', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
var index = monthArr.indexOf(arr[0]);
var newDate = new Date(arr[2],index,arr[1]);
var result = newDate.getFullYear()+'-'+(newDate.getMonth()+1)+'-'+newDate.getDate();
console.log(result)
//将打印“2015-1-1”
答案 2 :(得分:0)
这是一些丑陋的屁股代码,但它应该有效。使用switch-case将月份从字符串更改为实际日期。我仍然不确定您是希望将日期作为javascript中的日期对象还是新格式的新字符串。但是,一旦实现代码,更改应该不是一个大问题。快乐的编码。
var somedate = "Dec 1, 2015";
console.log(convert(somedate));
function convert(theString) {
var res = theString.split(/,| /);
var month = res[0];
var day = res[1];
var year = 0;
if (res[2].length == 4) {
year = res[2]
} else {
year = res[3];
}
var convMonth = monthConverter(month);
var newDate = year + "-" + convMonth + "-" + day;
return newDate;
}
function monthConverter(converterMonth) {
switch (converterMonth) {
case 'Jan':
converterMonth = 1
break;
case 'Feb':
converterMonth = 2
break;
case 'Mar':
converterMonth = 3
break;
case 'Apr':
converterMonth = 4
break;
case 'May':
converterMonth = 5
break;
case 'Jun':
converterMonth = 6
break;
case 'Jul':
converterMonth = 7
break;
case 'Aug':
converterMonth = 8
break;
case 'Sep':
converterMonth = 9
break;
case 'Oct':
converterMonth = 10
break;
case 'Nov':
converterMonth = 11
break;
case 'Dec':
converterMonth = 12
break;
default:
converterMonth = 1
break;
}
return converterMonth;
}