C#和JS中表示带有时区的DateTime

69 篇文章 0 订阅

公司要做一个感恩节的活动,需要在当地时间11月28号早晨6点到晚上0点之间把主页变成黑色,时间日期的代码涉及C#和JS。


JS的比较简单,时区、上午下午可以直接写在字符串里然后解析。比较大小用数学里的大小等于<>=即可。

var blackfriStart = Date.parse('28 Nov 2014 6:00:00 AM MST'),
            blackfriEnd = Date.parse('28 Nov 2014 11:59:59 PM MST'),
            cybermonStart = Date.parse('1 Dec 2014 8:00:00 AM MST'),
            cybermonEnd = Date.parse('1 Dec 2014 11:59:59 PM MST'),
            now = new Date();
        if ((blackfriStart <= now && blackfriEnd >= now) || (cybermonStart <= now && cybermonEnd >= now)) {
            $('section').hide();
            $('#siteseals').hide();
        }
参考:http://www.comptechdoc.org/independent/web/cgi/javamanual/javadate.html


C#就比较麻烦了。字符串里可以写AMPM但是不能写时区,如果想解释时区的话要重新写一个类,或者要用TryParse、ParseExact。我要直接把C#写到aspx页面里,不想弄得太复杂,上面的方法都不太合适。最后发现没有什么方法可以把当地时间转换成标准时间也就是0时区的时间,只好手动查了对应的UTC时间,然后用UTC格式写到字符串里。具体代码如下:

<%if (DateTime.Compare(DateTime.UtcNow, DateTime.Parse("2014-11-28T13:00:00")) >= 0 && DateTime.Compare(DateTime.UtcNow, DateTime.Parse("2014-11-29T06:59:59")) <= 0)
      { %>
当前时间为DateTime.UtcNow,UTC时间的格式是YYYY-MM-DDTHH:mm:ss。比较要用到Compare()。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值