我正在尝试将MM / DD / YYYY日期转换为长日期。例如,02/12/2013
会转换为Tuesday February 12 2013
之类的内容。
我看过MomentJS和其他JS方法,但没有真正做到我想要的。或者至少,我不这么认为。
有没有办法准确地进行日期转换?
答案 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很简单:
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;
答案 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,提供语言敏感字符串 比较,数字格式以及日期和时间格式。该 Collator,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
格式化的字符串中删除,以便符合您的要求。
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;
答案 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;