Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中指定本地日期和时间_Javascript_Android_Datetime_Locale_Android Notifications - Fatal编程技术网

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

如何在JavaScript中指定本地日期和时间,javascript,android,datetime,locale,android-notifications,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(美国东部时间或其他时间) 更新

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

2016-04-14T11:30:00Z
使用以下功能可在全球范围内同时显示该消息:

var mTime = new Date( element.dateNtime );
我想要的是在当地时间上午11:30在任何地方显示消息。如英国上午11:30,所有用户都会收到通知,但美国用户会在5小时后收到通知,即当地时间11:30(美国东部时间或其他时间)

更新 我想我已经找到了一个解决办法,但从下面的答案来看,这个问题似乎不是太清楚,就是不被理解。以下是场景:

a。我的Cordova应用程序由用户在其手机上打开 B应用程序在启动时以“2016-04-14T11:30:00Z”格式从服务器读取字符串日期和消息。因此,不存在使用new date()函数获取当前日期的问题。 C基于此,应用程序使用Cordova的通知插件设置给定日期和时间的通知。 D到时候会弹出通知

解决方案是对日期使用非ISO格式,即“Wed,09 Aug 1995 00:00:00”,以及date.parse()函数。使用上述示例,代码将变为:

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

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

如果您使用的是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只需实例化一个新的日期对象

var now = new Date();
这将使用客户端的本地时间创建一个新的日期对象。要显示类似于上午8:30<代码>的内容,请使用

var time = new Date().toString("hh:mm tt");
您可以对时区使用
newdate().getTimezoneOffset()/60
。还有一个
toLocaleString()
方法用于使用用户的区域设置显示日期