Javascript 如何将日期的格式从dd/mm/yyyy更改为mm/dd/yyyy,其中日期已从字符串转换为字符串?

Javascript 如何将日期的格式从dd/mm/yyyy更改为mm/dd/yyyy,其中日期已从字符串转换为字符串?,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我从字符串格式的API获取日期,我将该字符串转换为日期,但无法更改其格式。现在我得到了这样的字符串->'20/11/2016'我想转换这个-,应该是这样的 ->2016年11月20日&只有我可以使用HTML5日期输入类型在html页面中显示此内容 <input type='date' ng-model='myDate'> myApp.controller('myCtrl',['$scope','$filter'], function ($scope,$filte

我从字符串格式的API获取日期,我将该字符串转换为日期,但无法更改其格式。现在我得到了这样的字符串->'20/11/2016'我想转换这个-,应该是这样的 ->2016年11月20日&只有我可以使用HTML5日期输入类型在html页面中显示此内容

    <input type='date' ng-model='myDate'>

   myApp.controller('myCtrl',['$scope','$filter'],
   function ($scope,$filter)
   {
    //consider this string comes from api...
   var stringDate='20/11/2016';
   var convertedDate=new Date(stringDate);
   $scope.myDate=$filter('date')(convertedDate,'MM/dd/yyyy');
   });

myApp.controller('myCtrl',['$scope','$filter'],
函数($scope$filter)
{
//假设此字符串来自api。。。
var stringDate='20/11/2016';
var convertedDate=新日期(stringDate);
$scope.myDate=$filter('date')(转换日期,'MM/dd/yyyy');
});
使用momentjs

var convertedDate = moment('20/11/2016', 'dd/MM/yyyy');
使用香草javascript

var dateArray = '20/11/2016'.split('/');
var convertedDate = new Date(dateArray[1]+'-'+dateArray[0]+'-'+dateArray[2]);
也许这不是最好的实现,但它可以工作

使用momentjs

var convertedDate = moment('20/11/2016', 'dd/MM/yyyy');
使用香草javascript

var dateArray = '20/11/2016'.split('/');
var convertedDate = new Date(dateArray[1]+'-'+dateArray[0]+'-'+dateArray[2]);
也许这不是最好的实现,但它可以工作

删除“新建”以便

var stringDate='20/11/2016';
var convertedDate=new Date(stringDate);
应该是

var stringDate='20/11/2016';
var convertedDate=Date(stringDate);
删除“新”以便

var stringDate='20/11/2016';
var convertedDate=new Date(stringDate);
应该是

var stringDate='20/11/2016';
var convertedDate=Date(stringDate);

首先,您不能将
stringDate
直接作为日期对象的输入,因为它不是有效的日期字符串

修订守则:

var stringDate='20/11/2016';
var splitDate = stringDate.split('/');
var convertedDate=new Date(splitDate[2], splitDate[1]-1, splitDate[0]);
console.log(convertedDate.toLocaleDateString("en-US"));
$scope.myDate = convertedDate.toLocaleDateString("en-US");

此处使用en US语言环境返回2016年11月20日格式。您可以找到有关toLocale转换的更多信息。

首先,您不能直接将
stringDate
作为日期对象的输入,因为它不是有效的日期字符串

修订守则:

var stringDate='20/11/2016';
var splitDate = stringDate.split('/');
var convertedDate=new Date(splitDate[2], splitDate[1]-1, splitDate[0]);
console.log(convertedDate.toLocaleDateString("en-US"));
$scope.myDate = convertedDate.toLocaleDateString("en-US");
此处使用en US语言环境返回2016年11月20日格式。您可以找到有关toLocale转换的更多信息。

给您:

  var stringDate='20/11/2016';
  $scope.myDate=$filter('date')(stringDate, 'MM/dd/yyyy');
给你:

  var stringDate='20/11/2016';
  $scope.myDate=$filter('date')(stringDate, 'MM/dd/yyyy');

您可以拆分并传递到日期对象。之后,使用日期函数更改日期

var dateArray = '31/12/2016'.split('/');
var convertedDate = new Date(dateArray[1]+'-'+dateArray[0]+' '+dateArray[2]);

您可以拆分并传递到日期对象。之后,使用日期函数更改日期

var dateArray = '31/12/2016'.split('/');
var convertedDate = new Date(dateArray[1]+'-'+dateArray[0]+' '+dateArray[2]);

你能使用momentjs吗?我还没有,但我现在就试试,而不是使用momentjs,这个过滤器可以简单地解决这个问题。在这种情况下,$filter不起作用。如果我控制台显示无效日期@Jigar7521@Jigar7521瞬间js适合我,它是最好的解决方案。谢谢你,伙计…你能用momentjs吗?我还没有,但我现在就试试,而不是用momentjs,这个过滤器可以简单地解决这个问题。在这种情况下,$filter不起作用。如果我控制台显示无效日期@Jigar7521@Jigar7521瞬间js适合我,它是最好的解决方案。谢谢,伙计…已经转换为日期,想将格式更改为mm/dd/yyyy。最终输出应为2016年11月20日,已转换为日期,希望将格式更改为mm/dd/yyyy。最终输出应为11/20/2016@VimalKumarBohara我添加了一行以更新ng模型。请chk@VimalKumarBohara我添加了一行以更新ng模型。Plz chk