如何在JavaScript中指定本地日期和时间

时间:2016-04-14 17:37:02

标签: javascript android datetime locale android-notifications

我有一个Android应用程序,我想在给定的日期和时间(所有本地)显示通知。但是,如果我使用这样的UTC格式,我通过json从服务器获取:

2016-04-14T11:30:00Z

使用以下功能在全球范围内同时显示消息:

var mTime = new Date( element.dateNtime );

我想要的是在当地时间上午11:30显示消息。如同在英国上午11:30,所有用户都会收到通知,但美国用户将在5小时后收到通知,即当地时间11:30(美国东部时间或其他)。

更新

我想我找到了一个解决方案,但从下面的答案看来,这个问题要么不太清楚,要么不被理解。这是场景:

一个。我的Cordova应用程序由用户在他的手机上打开 湾应用程序在启动时以此格式从服务器读取字符串日期和消息" 2016-04-14T11:30:00Z"。所以不存在使用新的Date()函数获取当前日期的问题。 C。基于此,应用程序使用Cordova的通知插件为给定的日期和时间设置通知。 d。当时间到了,通知会弹出

解决方案是使用非ISO格式的日期,即"'星期三,09年8月9日00:00:00'"以及Date.parse()函数。使用上面的示例代码将变为:

var mTime = Date.parse( element.dateNtime );

如果日期以此格式提供(' Wed,09 Aug 00 00:00:00')变量mTime将包含完全相同的值。但是,如果日期时间以ISO格式(2016-04-14T11:30:00Z)提供,则mTime将包含转换为用户区域设置的时间。

2 个答案:

答案 0 :(得分:0)

如果您使用的是PHP服务器,可以使用以下代码轻松实现:

$serverdate = date("d m Y");
$indiantime = date('d/m/Y h:i:s A', time()+19800);

此处变量'serverdate'返回服务器的当前日期,变量'indian time'将时间存储为印度标准时间

要将时间转换为适当的区域,请使用此公式 x * 60 * 60
'x'是GMT的差异,在印度的情况下是5.30
所以5.5 * 60 * 60 = 19800

答案 1 :(得分:0)

只是实例化一个新的Date对象

var now = new Date();

这将使用客户端的本地时间创建一个新的Date对象。要显示8:30 AM,请使用

var time = new Date().toString("hh:mm tt");

您可以使用new Date().getTimezoneOffset()/60作为时区。还有一种toLocaleString()方法,用于使用用户的区域设置显示日期。