在 JavaScript 中将日期时间从 C# 转换为字符串
Convert datetime from C# to string in javascript
>我有 c# 代码返回类似的东西
"2013-11-05T16:55:34.7567325-05:00"作为 JavaScript 代码的日期。
我如何像这样显示它 "11/05/2013" ?
ECMAScript 只支持一种日期字符串格式,它是 ISO 8601 的一个版本。但是,并非所有使用的浏览器都支持它,并且大多数浏览器不支持不同的时区。否则,日期字符串解析取决于实现(即因浏览器而异)。
有对各种字符串格式的(非标准)支持,但它们并不普遍支持。
因此,最好的办法是手动解析字符串。
// parse an ISO 8601 date string with time zone
// e.g. "2013-11-05T16:55:34.7567325-05:00" -> Wed Nov 06 2013 07:55:34 GMT+1000
// Any missing date value is treated as "01", any missing time value is 0.
// A missing timezone is treated as "Z" (UTC).
// Civil timezone abbreviations (e.g. EST, CET) are not supported
function isoStringToDate(s) {
// Split into parts
var p = s.split(/'D/);
// Calculate offset as minutes to add using sign
// A missing timezone is treated as UTC
var offsetSign = /-'d'd:'d'd$/.test(s)? 1 : -1;
var offset = offsetSign * ((p[7] || 0) * 60 + +(p[8] || 0));
// Get milliseconds - pad if required. Values beyond 3 places are
// truncated by the Date constructor so will not be preserved in the
// resulting date object (i.e. it's a limitation of Date instances)
p[6] = (p[6]? p[6] : '0') + '00';
var ms = p[6].substring(0,3) + '.' + p[6].substring(3);
// Create local date as if values are UTC
var d = new Date(Date.UTC(p[0], p[1]? --p[1] : 0, p[2] || 1,
p[3] || 0, p[4] || 0, p[5] || 0, ms));
// Adjust for timezone in string
d.setMinutes(d.getMinutes() + offset);
return d;
}
// Given a Date object, return a string in the US format mm/dd/yyyy
function formatAsUSDateString(d) {
function z(n){return (n<10?'0':'') + n;}
return z(d.getMonth() + 1) + '/' + z(d.getDate()) + '/' + d.getFullYear();
}
var d = isoStringToDate('2013-11-05T16:55:34.7567325-05:00');
console.log(formatAsUSDateString(d)); // 11/06/2013 for me but I'm UTC+10
时区允许"Z"或"+/-HH:mm"(除 +/-HH:mm 以外的任何内容都被视为 Z)。支持 ES5 指定的所有 ISO 8601 字符串格式,其中缺少的日期部分被视为"1",缺少的时间部分被视为"0",例如"2013-11" -> "2013-11-01T00:00:00Z"。
这个日期字符串可以转换为javascript datetime对象,请参阅代码以获取所需的内容:
选项 A:通过 JavaScript
var yourDateString = '2013-11-05T16:55:34.7567325-05:00'; //date that you receive from c#
var yourDate = new Date(yourDateString);
var yourFormatedDate = yourDate.getDay() + "/" + yourDate.getMonth() + "/" + yourDate.getFullYear();
alert(yourFormatedDate);
选项 B:通过 C#
代码隐藏:
String formateDate = String.Format("{0:MM/dd/yyyy}", yourDateVar);
直接在 ASP.NET 中使用 JavaScript:
var javascriptVar = '<%=String.Format("{0:MM/dd/yyyy}", yourDateVar); %>';
最简单的方法是使用时刻.js。
moment("2013-11-05T16:55:34.7567325-05:00").format("MM/DD/YYYY")
这将假设您希望在查看者的本地时区中获取此时间的确切时刻的日期。 由于时区变化,该用户可能会在不同的日期。
如果要保留引入的确切值,请改用以下内容:
moment.parseZone("2013-11-05T16:55:34.7567325-05:00").format("MM/DD/YYYY")
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象