如何使用像真实日期字段一样的格式化日期
How to use a formatted date like a real date field
我使用旧版软件来管理格式化为字符串的日期,我希望能够像使用真正的日期一样使用它。
来自
示例:2015 年 1 月 1 日
至
日期字段 = 2015-01-01
谢谢
cazares,您可以尝试使用 DateTime class 中的 createFromFormat 方法,看看这个 link:
http://php.net/manual/en/datetime.createfromformat.php
在你的情况下你可以这样使用它:
$dateObj = DateTime::createFromFormat("M j, Y", "Jan 1, 2015");
希望对您有所帮助。
希望对您有所帮助。
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”
这是一些丑陋的混蛋代码,但它应该可以工作。使用 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;
}
我使用旧版软件来管理格式化为字符串的日期,我希望能够像使用真正的日期一样使用它。
来自
示例:2015 年 1 月 1 日
至
日期字段 = 2015-01-01
谢谢
cazares,您可以尝试使用 DateTime class 中的 createFromFormat 方法,看看这个 link:
http://php.net/manual/en/datetime.createfromformat.php
在你的情况下你可以这样使用它:
$dateObj = DateTime::createFromFormat("M j, Y", "Jan 1, 2015");
希望对您有所帮助。
希望对您有所帮助。
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”
这是一些丑陋的混蛋代码,但它应该可以工作。使用 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;
}