将MM / DD / YYYY日期转换为月日年

时间:2016-09-14 16:03:43

标签: javascript date momentjs date-manipulation

我正在尝试将MM / DD / YYYY日期转换为长日期。例如,02/12/2013会转换为Tuesday February 12 2013之类的内容。

我看过MomentJS和其他JS方法,但没有真正做到我想要的。或者至少,我不这么认为。

有没有办法准确地进行日期转换?

8 个答案:

答案 0 :(得分:4)

使用moment.js,

你可以使用JavaScript Date对象

这样做

var date = new Date(2013, 1, 12);
console.log(moment(date).format('dddd MMMM D Y'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script>

如果要将日期字符串转换为长日期格式字符串,可以这样做。

var longDateStr = moment('02/12/2013', 'M/D/Y').format('dddd MMMM D Y');
console.log(longDateStr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script>

答案 1 :(得分:3)

使用moment.js很简单:

&#13;
&#13;
console.log(moment('02/12/2013', 'MM/DD/YYYY').format('dddd MMMM D Y'))
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

如果您不想要任何其他脚本,可以使用Date和某些数组

var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var now = new Date('02/12/2013');
console.log(days[now.getDay()] + ' ' + months[now.getMonth()] + ' ' + now.getDate() + ' ' + now.getFullYear()); //Tuesday February 12 2013

答案 3 :(得分:1)

在现代浏览器上,您可以使用Intl API

  

Intl对象是ECMAScript的名称空间   Internationalization API,提供语言敏感字符串   比较,数字格式以及日期和时间格式。该   Collat​​or,NumberFormat和DateTimeFormat对象的构造函数   是Intl对象的属性。

手动执行解析,Date.parse

  

建议不要使用Date.parse直到ES5,解析   字符串完全取决于实现。还有很多   不同主机解析日期字符串的差异,因此是日期   字符串应该手动解析(如果很多,库可以帮助   要适应不同的格式。)

Date.UTC用于提供parts Intl.DateTimeFormat#format的日期。

  

Date.UTC()方法接受与最长形式相同的参数   构造函数,并返回Date中的毫秒数   对象自1970年1月1日00:00:00,世界时间

最后,,已从en-US格式化的字符串中删除,以便符合您的要求。

&#13;
&#13;
const parts = '02/12/2013'.split('/');
parts.unshift(parts.pop());
parts[1] -= 1;
const dateString = new Intl.DateTimeFormat('en-US', {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  timeZone: 'UTC'
}).format(Date.UTC(...parts)).replace(/,/g, '');
console.log(dateString);
&#13;
&#13;
&#13;

答案 4 :(得分:1)

我认为有一些简单的方法可以做到这一点。

function getData (){
  var d = new Date("02/12/2013");
  var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
  var n = d.toLocaleDateString('en-US',options);
  var t = d.toLocaleTimeString('en-GB')
  var replase = n.replace(new RegExp(',', 'g'),' ')
  document.getElementById("demo").innerHTML = replase
 }

答案 5 :(得分:0)

您可以使用普通的Javascript Date方法进行类似的操作:

Public Sub showGV()

    Using cmd As New SqlCommand("SELECT * FROM money_sent", Conn)
        cmd.CommandType = CommandType.Text
        Using sda As New SqlDataAdapter(cmd)
            Using dt As New DataTable()
                sda.Fill(dt)

                'Set AutoGenerateColumns False
                MetroGrid2.AutoGenerateColumns = False

                'Set Columns Count
                MetroGrid2.ColumnCount = 12

                'Add Columns

                Dim bc As New DataGridViewButtonColumn
                bc.Tag = False
                bc.Text = "Delete"
                bc.Name = ""
                bc.Width = 25
                'MetroGrid1.Columns.Add(bc)
                MetroGrid2.Columns.Insert(0, bc)


                MetroGrid2.Columns(1).Name = "smoney"
                MetroGrid2.Columns(1).HeaderText = "المبلق المرسل"
                MetroGrid2.Columns(1).DataPropertyName = "smoney"

                MetroGrid2.Columns(2).Name = "moneyt"
                MetroGrid2.Columns(2).HeaderText = "العملة"
                MetroGrid2.Columns(2).DataPropertyName = "moneyt"

                MetroGrid2.Columns(3).Name = "commission"
                MetroGrid2.Columns(3).HeaderText = "العمولة"
                MetroGrid2.Columns(3).DataPropertyName = "commission"

                MetroGrid2.Columns(4).Name = "rname"
                MetroGrid2.Columns(4).HeaderText = "أسم المستقبل"
                MetroGrid2.Columns(4).DataPropertyName = "rname"

                MetroGrid2.Columns(5).Name = "rphone"
                MetroGrid2.Columns(5).HeaderText = "هاتف المستقبل"
                MetroGrid2.Columns(5).DataPropertyName = "rphone"

                MetroGrid2.Columns(6).Name = "rcountry"
                MetroGrid2.Columns(6).HeaderText = "البلد المستقيل"
                MetroGrid2.Columns(6).DataPropertyName = "rcountry"

                MetroGrid2.Columns(7).Name = "sname"
                MetroGrid2.Columns(7).HeaderText = "أسم المستقبل"
                MetroGrid2.Columns(7).DataPropertyName = "sname"

                MetroGrid2.Columns(8).Name = "sphone"
                MetroGrid2.Columns(8).HeaderText = "هاتف المستقبل"
                MetroGrid2.Columns(8).DataPropertyName = "sphone"

                MetroGrid2.Columns(9).Name = "comname"
                MetroGrid2.Columns(9).HeaderText = "الشركة المستقبلة"
                MetroGrid2.Columns(9).DataPropertyName = "comname"

                MetroGrid2.Columns(10).Name = "date"
                MetroGrid2.Columns(10).HeaderText = "تاريخ الارسال"
                MetroGrid2.Columns(10).DataPropertyName = "date"

                MetroGrid2.Columns(11).Name = "note"
                MetroGrid2.Columns(11).HeaderText = "الملاحظات"
                MetroGrid2.Columns(11).DataPropertyName = "note"

                MetroGrid2.Columns(12).Name = "id"
                MetroGrid2.Columns(12).HeaderText = "id"
                MetroGrid2.Columns(12).DataPropertyName = "id"

                MetroGrid2.DataSource = dt

                Dim imageb As New DataGridViewButtonColumn
                imageb.Tag = False
                imageb.Text = "image"
                imageb.Name = ""
                imageb.Width = 25
                'MetroGrid1.Columns.Add(bc)
                MetroGrid2.Columns.Insert(10, imageb)

                Me.MetroGrid2.Columns("id").Visible = False
            End Using
        End Using
    End Using
End Sub 

答案 6 :(得分:0)

FullJS:

function mydate(date)
{
  var
    month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    days  = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
  ;
  return days[date.getDay()]+' '+month[date.getMonth()]+' '+date.getDate()+' '+date.getFullYear()
}

console.log(mydate(new Date()));

参考https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

答案 7 :(得分:-1)

使用时刻,

Do
在momentJS主页上的

,您可以看到所有可能日期格式的列表(http://momentjs.com/)。

D添加&#34; nth&#34;到目前为止,让它income_id | income_amount | income_date 1 5.00 2016-01-15 2 2.00 2016-02-08 3 8.00 2016-04-19 4 10.00 2016-09-01 只显示一个数字,但由于你用文字写所有内容,最好使用&#34; nth&#34;