在我的php应用程序中,我像这样设置意大利时区:
config.php
上面的字符串位于我的momentjs
文件中,该文件是应用程序的核心。无论如何,从后端我使用CodeIgniter
和var end_date_temp = Date.parse($('#end-datetime').val());
框架。当用户从正确输入中选择日期时,设置此结果:
现在我从这个输入中得到这样的值:
var end_date = moment(end_date_temp).add(serviceDuration, 'minutes').format('DD/MM/YYYY HH:mm');
$('#end-datetime').val(end_date);
最初的结果是错误的:
Tue Mar 01 2016 11:03:00 GMT + 0100(ora solare Europa occidentale)
其余代码是:
moment.locale('it')
注意:我也尝试设置var end_date_temp = moment($('#end-datetime').val())._i;
var end_date = moment(moment(end_date_temp).add(serviceDuration, 'minutes')).format('DD/MM/YYYY HH:mm');
$('#end-datetime').val(end_date);
但是在我的javascript库中出现了相同的结果,我是意大利时区的momentjs。怎么了?
更新代码:
src/
main/java/
main/resources/ ---/here I'm keeping my XML configuratoin files.
pom.xml
答案 0 :(得分:2)
// parse the input string to a moment object, **specifying the input format**
var end_date = moment($('#end-datetime').val(), 'DD/MM/YYYY HH:mm');
// manipulate it as desired
end_date.add(serviceDuration, 'minutes');
// format it to the specified output format, and assign the result back to your field
$('#end-datetime').val(end_date.format('DD/MM/YYYY HH:mm'));
如果您愿意,可以在一行代码中执行此操作。
$('#end-datetime').val(moment($('#end-datetime').val(), 'DD/MM/YYYY HH:mm').add(serviceDuration, 'minutes').format('DD/MM/YYYY HH:mm'));
区域设置对于这段特定代码并不重要,因为您不使用任何特定于语言环境的函数或格式说明符
答案 1 :(得分:0)
momentjs正在使用美国日期格式(MM / DD / YYYY),强制执行格式以获得正确的日期:
var input = '03/01/2016 11:00';
var date = moment(input, 'DD/MM/YYYY HH:mm');
document.write(date);

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.0/moment.min.js"></script>
&#13;
答案 2 :(得分:0)
经过多次尝试,我修好了我的时区(意大利语),如下:
from math import radians, cos, sin, asin, sqrt
from scipy.spatial.distance import pdist, squareform
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt
import pandas as pd
def haversine(lonlat1, lonlat2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians
lat1, lon1 = lonlat1
lat2, lon2 = lonlat2
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
r = 6371 # Radius of earth in kilometers. Use 3956 for miles
return c * r
X = pd.read_csv('dbscan_test.csv')
distance_matrix = squareform(pdist(X, (lambda u,v: haversine(u,v))))
db = DBSCAN(eps=0.2, min_samples=2, metric='precomputed') # using "precomputed" as recommended by @Anony-Mousse
y_db = db.fit_predict(distance_matrix)
X['cluster'] = y_db
plt.scatter(X['lat'], X['lng'], c=X['cluster'])
plt.show()
我将moment.locale('it');
var end_date_temp = moment($('#end-datetime').val()).format('DD/MM/YYYY HH:mm')
var end_date = moment(end_date_temp).add(30, 'minutes');
$('#end-datetime').val(moment(moment(end_date).toDate()).format('DD/MM/YYYY HH:mm'));
声明为.locale
,下次我也会在时区中格式化输入文本返回的时间。我用it
方法操纵了日期,为此,我创建了另一个momentjs对象的实例。最后,我从输入中传递值,再次以我的时区格式重新格式化日期'因为在操作中我丢失了之前的格式。最终结果是我想要的。无论如何,希望这有帮助,如果有人找到比我更高兴的解决方案,我会很高兴看到。